派生类通过显示类型转换来访问基类的友元函数
#include<iostream>
using namespace std;
class Base;
void showinfo(const Base& b);
class Base
{
private:
string name;
public:
Base(string name):name(name){}
friend void showinfo(const Base&);//友元
};
void showinfo(const Base& b)
{
cout << b.name << " ";
}
class Derived :public Base
{
private:
int age;
public:
Derived(string name, int age):Base(name), age(age){}
friend void show(const Derived&);
};
void show(const Derived& d) {
showinfo((const Base&)d); //显示类型转换
cout << d.age << endl;
}
int main() {
Derived d("sss", 18);
show(d);
}