C++ C+中的值访问+;
嗨 我有两门课A和B, 这里A继承了B,现在我想从A访问B中的一个变量,我在B中包含了一个头并尝试访问,但在QObject中显示了一些错误C++ C+中的值访问+;,c++,qt,visual-c++,qt4,C++,Qt,Visual C++,Qt4,嗨 我有两门课A和B, 这里A继承了B,现在我想从A访问B中的一个变量,我在B中包含了一个头并尝试访问,但在QObject中显示了一些错误 有可能这样做吗。。请帮助您的成员变量是私有的吗?那么您不能声明它是您的成员变量private?那么你就不能声明它受保护了,我不确定你的Q是否正确 class A { public: int nValueA; protected: int nValueB; private: int nValueC; }; class B : public A {
有可能这样做吗。。请帮助您的成员变量是私有的吗?那么您不能声明它是您的成员变量
private
?那么你就不能声明它受保护了,我不确定你的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;
};
我不确定你的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;
};
请张贴准确的错误和代码!在
base
中的成员是公共的或受保护的,则所有派生类都可以访问它。请发布准确的错误和代码!在base
中的成员是公共的或受保护的,则所有派生类都可以访问它。