【发布时间】:2015-03-29 10:45:19
【问题描述】:
class base{
private:
int a;
public:
int b;
void setData(){
a = 10; b = 5;
}
};
class derived: public base{
private:
int c;
public:
// b is inherited
};
void main(){
derived D1;
D1.setData();
}
我了解到私有成员不会被继承。因此,派生类对象中不存在私有变量 a(在基类中)。我的问题是 当 D1.setData() 被调用时,如果 a 不存在,它如何为 a 赋值? 我很确定我的这个概念是错误的,所以有人可以解释一下它是如何工作的吗?创建派生类对象时,是否也创建了基类成员?
【问题讨论】:
-
它们是继承的,但是它们是不可访问的。尝试调试,在对象周围设置断点并在运行时查看它,您将了解它的外观!
标签: c++ class inheritance base derived