【发布时间】:2016-07-06 11:09:10
【问题描述】:
我是 C++ 新手,目前正在学习构造函数。假设我有一个带有构造函数的类 Dog:
class Dog{
Dog(){
std::cout << "Constructor called!
}
};
我知道在 C++ 中有不同的方法(如果我没记错的话)我们可以创建一个对象,例如:
1- Dog dog;
2- Dog dog = Dog();
3- Dog *dog = new Dog;
4- Dog *dog = new Dog();
5- Dog dog();
但事情是这样的:从 1 到 4 的语句都调用了构造函数,但第 5 条语句没有,我可以弄清楚原因。
你知道为什么第五条语句不调用类构造函数吗? 谢谢。
【问题讨论】:
-
5 是一个函数原型,看最麻烦的解析。
-
5 不创建 Dog 对象。
-
@sergej 您应该添加您的评论作为答案。 edit 太晚了; HolyBlackCat 打败了你。
标签: c++ constructor