假设如下:
class A {
public:
A();
protected:
int a;
};
class B : public A {
public:
B();
};
我的问题:
我是C ++的新手。我尝试了几件事来把“A”当作对象,但我不断收到错误消息。这是我尝试过的一件事:
A & B::getA() {
return A; //error: "A does not refer to a value"
}
答案 0 :(得分:1)
我可以(直接)访问A的受保护数据成员吗? 修改它们而不必使用公共成员函数?
受保护的成员变量或函数与私有成员非常相似,但它提供了一个额外的好处,可以在子类中访问它们,这些子类称为派生类。
我可以将B内部视为"现有"对象,以便我可以返回A. 通过引用并能够修改其数据成员?
在B中,您可以直接访问A(公共和受保护)方法和属性。
Read此处了解更多信息。
答案 1 :(得分:0)
要返回对基类的引用,可以编写
A & B::getA() {
return *this;
}
访问A
的受保护数据成员,您只需编写
a = 5;