这个初始化列表是什么意思
What does this initializer list mean?
// Use multiple inheritance. We want
// both a string and an Object:
class MyString: public string, public Object {
public:
~MyString() {
cout << "deleting string: " << *this << endl;
}
MyString(string s) : string(s) {}
};
对于上面的代码,我不明白string(s)
是什么意思?事实上,没有一个叫做string
的变量,但是为什么它可以工作呢?
通常,在构造派生类时,将调用默认的基构造函数(如果存在的话)。如果你想显式地为某个派生构造函数调用不同的基构造函数,你可以使用初始化列表来实现。
在这种情况下,当构造MyString
时,以string
作为唯一参数(复制构造函数)的string
-构造函数将以s
作为参数调用。
string(s)
正在与s
构建MyString
的父类实例。
注意MyString
继承自string
,这就是string
的用法。
初始化类型为string
的父子对象。实际上,它指定了为string
父类调用哪个父构造函数。
MyString
源自string
。您引用的语法string(s)
以s
作为唯一参数调用基类构造函数。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思