class WithCC { // With copy-constructor
public:
// Explicit default constructor required:
WithCC() {}
WithCC(const WithCC&) {
cout << "WithCC(WithCC&)" << endl;
}
};
class WoCC { // Without copy-constructor
string id;
public:
WoCC(const string& ident = "") : id(ident) {}
void print(const string& msg = "") const {
if(msg.size() != 0) cout << msg << ": ";
cout << id << endl;
}
};
class Composite {
WithCC withcc; // Embedded objects
WoCC wocc;
public:
Composite() : wocc("Composite()") {}
void print(const string& msg = "") const {
wocc.print(msg);
}
};
我正在阅读 C++ 第 11 章默认复制构造函数中的思考。对于上面的代码,作者说:“该类WoCC
没有复制构造函数,但它的构造函数将在内部字符串中存储一条消息,可以使用打印出来
。这个构造函数在构造函数初始化列表print( )
中显式调用”。Composite’s
为什么WoCC
必须在构造函数中显式调用Composite
构造函数?