【发布时间】:2017-10-14 18:57:46
【问题描述】:
今天在网上看到一个C++03的例子。
class Cat {
public:
Cat(const Cat& iCat);
};
有人告诉我,在这种情况下,编译器不会自动生成默认构造函数。如果为真,这意味着可以从现有的 Cat 对象创建新的 Cat 对象。
谁能告诉我在这种情况下如何创建第一个 Cat 对象?如果我的理解有误,请纠正我。
【问题讨论】:
-
"谁能告诉我在这种情况下如何创建第一个 Cat 对象?" - 你不能。所以不要写那样的代码。
-
也许这个例子只是为了说明?在合理的代码中,您会希望有一个额外的构造函数,无论它是否是默认构造函数。
-
我建议你至少需要用一个私有构造函数和一个函数来扩展你的类,如果你不希望它通常是可构造的,那么可以将基类初始化为一些合理的默认值。
标签: c++ copy-constructor default-constructor