用C++"扩展"Struct

AnO*_*ame 2 c++ inheritance struct extend

我说"延长"是因为在谷歌搜索后我不确定这是我正在努力完成的正确名称.

基本上我正在尝试做的是创建一个结构(只是为了好玩,让我们也包括这个问题中的类),其中包含一些空白变量,然后创建另一个结构或类,继续父进程离开,填写那些变量.

所以像这样:

struct parent{

    int foo;
    int bar;
};

struct daughter : parent{
    foo=1;
    bar=3;
};

struct son : parent {
    foo=10;
    bar=20;

    int foobar;
};
Run Code Online (Sandbox Code Playgroud)

后来,我可能需要进一步扩展这棵树:

struct grandson : son {
    foo=50;
    bar=900;
    foobar=10000;
};
Run Code Online (Sandbox Code Playgroud)

怎样才能解决这个问题?

编辑:

@Everyone:所以,我可以解释一下我正在尝试做什么,你可以用更好的方法来解决它,谁知道,也许这些方法要好得多.然而,首先,马上,我只是好奇我能问的是什么......

我遗漏了一些东西:

struct parent{
    int foo;
    int bar;
    int foobar;

    int add(int x, int y){
        return x+y;
    };

struct son : parent {
    foo=12;
    bar=13;
    foobar=add(foo,bar);
Run Code Online (Sandbox Code Playgroud)

Jer*_*ner 6

我想你可能想用构造函数初始化这样的值.像这样的东西:

struct daughter : public parent {
   daughter() {
      foo=1;
      bar=3;
   }
};
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,我知道'public'关键字不是必需的,我之所以包含它只是因为我喜欢保持我的意图明确;否则我总是想知道以后我是否忘了指定它

  • @Jeremy Friesner似乎提问这个问题的个人对C++的经验不多.为了安全地让那些人从所有可能性中学习"最好"的东西,我建议你在构造函数中引入初始化列表,而不是仅仅在构造函数体中分配它们. (2认同)