如何在不使用友元类的情况下通过另一个类访问一个类的私有成员
How to access private members of a class by another class without using friend class
>假设我们有以下内容:
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() 私有。
不确定这对您来说是否可行,但这里是:
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();
}
};
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异