C++构造函数的相关问题

书上构造函数代码如下:
CerealPack(double length, double width, double height, const string cerealType):Carton{ length, width, height,"cardboard" }, Contents{ cerealType }
{......;}

CerealPack类继承于Carton类和Contents类,现在对:后的 Carton{ length, width, height,"cardboard" }, Contents{ cerealType }具体对应于前面的那部分不明确,有没有大神能解释一下,"cardboard" 这一字符串为何没有在CerelPack中写明

是否只是起到一个类似于标签的作用?

继承的时候,如果需要对cardboard赋予新的操作,或者说父类满足不了新的要求时,需要你进行扩充,才需要重新进行初始化吧,否则就没必要重新写构造函数吧。当然你在CerelPack加上cardboard,编译器也不会报错。

首先你要知道:的作用,是子类向父类传递自己接收的某些参数用的。举个形象一点的例子,儿子长大了需要赡养父亲,
儿子有自己的5000月薪,把其中1000给父亲,但是父亲需要1500才行,而父亲自己有自己每月的500养老金。
因此向上传递的参数就是儿子给父亲的,直接使用字符串填充相当于父亲个人的收入来源。

或许你没意识到:函数传参时不必须使用变量,填入基本数据类型值也是可以的。

int methodA(int x);
// 调用
int i=0;
int a=methodA(i);
int b=methodA(9);