【问题标题】:how can I access data from class through another class in c++?如何通过 C++ 中的另一个类访问类中的数据?
【发布时间】:2020-08-05 21:08:27
【问题描述】:

假设有 A、B 和 C 三个类,它们的连接方式是 A 对 B 有一个对象实例,B 对 C 有一个对象实例(A->B->C)。 每个类都有私有数据成员、getter 和 setter。

如何从 C 类到 A 类获取值?

代码示例:

class C{
private:
    int q = 3;
    int w = 2;
    int e = 1;

public:
... setters and getters ...
}

class B{
private:
    C objC;
    int x;
    int y;

public:
... setters and getters ...

}

class A{
private:
    B objB;
    int rows;
    int cols;

public:
  Board{

    if(objB.objC.getValOfQ() > 0){    //this is not working because objC is a private data member of class B
      ....
    }

  }
}

我应该在 B 类中编写一个 getter 函数来访问 objC 或类似的东西吗?如何为对象创建公共 getter?

这是错误:

 'objC' is a private member of 'B' 

【问题讨论】:

  • 请发送minimal reproducible example 并显示您收到的实际编译器错误消息。
  • 错误信息是:'objC' is a private member of 'B'
  • 那么为objC创建一个公共getter?
  • 那么请将该信息添加到问题中,而不是作为评论。
  • 如何为对象创建公共吸气剂?抱歉,我是 C++ 新手

标签: c++ class instance


【解决方案1】:

显然你不能直接访问objC,因为它是在objB中私下设置的。

在您提到的解决方案之上,另一个简单的解决方案是在 objB 中创建额外的 getter 函数,它会调用objC 中对应的 getters 而不是返回对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多