假设我们有以下内容:
class base{
}
class derived1 : public base{
private:
void fun();
friend class derived2;
}
class derived2 : public base{
derived1 ob;
void fun2(){
ob->fun();
}
我想在derived2的fun2()中使用derived1的fun(),而不是使用友元类,并在derived1中保持fun()私有。
答案 0 :(得分:0)
不确定这是否适合您,但现在是:
class base{
public:
virtual void fun() {}
};
class derived1 : public base{
private:
void fun() {}
};
class derived2 : public base{
derived1 ob;
void fun2(){
static_cast<base&>(ob).fun();
}
};