我们可以从派生类更改基类的数据成员吗?

时间:2017-03-19 08:30:46

标签: c++

struct A
{
    int a = 90, b=  87, c = 23;
};

struct A1 : public A
{
   int a1 = a;
};

struct A2 : public A
{
   int a2 = b;
};

struct A3 : public A
{
   int a3 = c;
};

struct R : public A1, public A2, public A3
{
    int r = a1 + a2 + a3;
};

这给了我完美的输出。但是,我想知道我们是否可以在派生结构中给a,b,c赋值。原因也是。谢谢! :)

1 个答案:

答案 0 :(得分:0)

是的,除非基类将变量标记为私有,否则可以。但是在结构中,成员是公共的默认值(这也是为什么你可以在派生类中为成员分配基类的值)。

你问的原因可能是这个。如果答案"它们是公开的,则在结构中是默认的"目前尚不清楚可能存在对oop仿制药的更深层次的误解。