构造函数中的C++保护声明
C++ protected declaration in constructor
我正在努力理解以下代码在做什么以及为什么:
class Beverage {
std::string m_description;
protected:
Beverage(std::string aDescription):m_description(aDescription){}
我试图理解的部分是":m_description(aDescription){}",我不明白它在声明什么。
来自Olivianeacsu 的代码
:m_description(aDescription)
正在初始化成员m_description
。
这比在构造函数体中写入m_description = aDescription
更可取,因为首先,m_description
可以是const
,并且该成员类型不需要默认构造函数。
构造函数是protected
这一事实意味着它只能从基类中调用。编译器在此实例中也不会生成默认构造函数,因此这意味着必须继承Beverage
。
相关文章:
- .cpp和.h文件中的模板专用化声明
- C++:无法访问声明的受保护成员
- 在使用受保护和继承时无法访问在类中声明的私有成员
- 在带有类型保护的模板文件中使用前向声明
- 如何将超类的受保护成员访问到其派生类. 如果已在派生类中声明了具有相同名称的函数?
- 何时在抽象类 cpp 中声明受保护的字段
- 向前声明 typedef 保护
- 在派生的C 类中,访问基类受保护成员作为公共的访问声明
- 错误 C2248:无法访问类中声明的受保护成员
- 有什么方法可以在工会内部获得受保护的声明吗
- 构造函数中的C++保护声明
- 继承错误 - 无法实例化抽象类 无法访问在类中声明的受保护成员
- 声明类受静电保护
- 有没有办法从类外部声明一个受保护C++变量?
- 受保护部分中的好友声明
- 声明受保护的函数friend
- 在c++中声明类时使用私有访问说明符在内存级别提供了什么保护
- 无法访问类 'A' 中声明的受保护成员
- 不能访问类中声明的受保护成员
- 以前声明为受保护的枚举的访问枚举器