如何从抽象类的友类访问抽象类的私有成员
How to access private members of an abstract class from its friend class?
class A
{
private:
int a,b,c;
public:
virtual int get()=0;
friend class B;
};
class B{
//here I want to access private variables of class A that is a, b and c
};
class C:public class A
{
int get(){
//some code
}
};
如何在类b中访问类A的私有成员。我不能创建类A的对象,因为它是抽象的。我必须使用C类的对象来实现,但怎么做呢?
class A {
friend class B;
private:
int x;
public:
A() : x(42) {}
};
class C : public A {
};
class B {
public:
int reveal_secrets(C &instance){
// access private member
return instance.x;
}
int reveal_secrets(){
// access private member of instance created inside B
C instance;
return instance.x;
}
};
void print_secrets(){
C instance;
B accessor;
std::cout << accessor.reveal_secrets(instance) << ", " << accessor.reveal_secrets() << std::endl;
}
class B
将首先具有来处理实例对象。这个实例对象是B
为了访问a
, b
, 等而查看的。
相关文章:
- 提升 - 类没有名为"序列化"的成员(抽象类)?
- C++从抽象类型定义类成员
- C++ 将一组对象传递给抽象类的成员函数
- 在 C++ 中访问抽象类成员中的类
- 我应该初始化抽象类的成员吗?
- 从派生类调用的抽象基类成员函数
- 从抽象基类访问另一个基类成员
- 返回虚拟函数的静态成员,对于抽象类缺少VT
- C++:具有成员的抽象类中的纯虚拟析构函数
- 抽象类成员变量
- 在抽象基类中与抽象类成员合作的最佳方法
- 基于模板的成员初始化,其中模板是抽象类的派生
- 带有抽象类的unique_ptr成员和Copy构造函数的Factory方法模式
- 如何删除抽象类中类似的 const 和非 const 成员函数之间的代码重复
- 继承错误 - 无法实例化抽象类 无法访问在类中声明的受保护成员
- 无法启动抽象类,因为成员是抽象的
- 抽象类成员无法访问派生类中设置的值
- 如何创建抽象类成员
- 抽象类:成员函数virtual..的抽象返回类型无效
- 在父类中实现抽象类成员