我试图了解默认构造函数(如果您不编写则由编译器提供)与您自己的默认构造函数的工作原理。
例如我写了这个简单的类:
class A
{
private:
int x;
public:
A() { std::cout << "Default constructor called for A\n"; }
A(int x)
{
std::cout << "Argument constructor called for A\n";
this->x = x;
}
};
int main (int argc, char const *argv[])
{
A m;
A p(0);
A n();
return 0;
}
输出是:
调用 A 的默认构造函数
为 A 调用的参数构造函数
所以对于最后一个调用了另一个构造函数,我的问题是在这种情况下 n 有哪一个和哪种类型?
最佳答案
A n();
声明一个名为 n
的函数,它不接受任何参数并返回一个 A
。
因为它是一个声明,所以没有代码被调用/执行(尤其是没有构造函数)。
在那个声明之后,你可以这样写
A myA = n();
这会编译。但是就是连接不上!因为没有函数n
的定义。
关于c++ - 默认构造函数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835517/