我试图了解以下代码的作用以及原因:
class Beverage {
std::string m_description;
protected:
Beverage(std::string aDescription):m_description(aDescription){}
我试图理解的部分是“:m_description(aDescription){}”我不明白这是什么声明。
来自Olivianeacsu的代码
答案 0 :(得分:1)
:m_description(aDescription)
正在初始化成员m_description
。
这是在构造函数体中编写m_description = aDescription
的首选,因为有一点,m_description
可以是const
,并且该成员类型不需要默认构造函数。
构造函数为protected
这一事实意味着只能从基类调用它。编译器也不会在此实例中生成默认构造函数,因此这意味着必须继承Beverage
。