【问题标题】:Value access in C++C++ 中的值访问
【发布时间】:2010-10-01 07:53:43
【问题描述】:

嗨,

我有两个类别 A 和 B, 这里A继承了B,现在我想从A访问B中的一个变量,我在B中包含了A头并试图访问但在QObject中显示了一些错误。

是否可以这样访问..请帮助

【问题讨论】:

  • 请发布确切的错误和代码!
  • QObject 中的一些错误指向问题的 Qt 部分问题,而不仅仅是 C++ 方面的问题。一般来说,如果base中的成员是public或者protected,那么所有派生类都可以访问。

标签: c++ qt visual-c++ qt4


【解决方案1】:

不确定我是否正确地得到了你的 Q....

class A {
public:
  int nValueA;
protected:
  int nValueB;
private:
  int nValueC;
};

class B : public A {
public:
    B();
    int x, y, z;
}; 
B::B(): 
x(nValueA), //-->OK
y(nValueB), //-->OK
z(nValueC)  //-->error due to child can't inherit parent's private member
{}

void main(){
  B object;
  object.nValueA = 888; //--> valid
  object.nValueB = 888; //--> error since protected member is not accessible
  object.nValueC = 888; //--> error since private member is not accessible
}

可能的解决方案:

class A {
public:
  int nValueA;
  int nValueB;
  int nValueC;
};

【讨论】:

    【解决方案2】:

    你的成员变量是private吗?那么你不能,声明它protected

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      相关资源
      最近更新 更多