使用/不使用括号实例化默认构造函数

时间:2014-12-26 08:11:39

标签: c++ linker-errors default-constructor

#include<iostream>
using namespace std;

class NoDef {
public:
    NoDef();
};


int main(int argc, char** argv)
{
    NoDef nd1();  // Line 1
    NoDef nd2;    // Line 2

    return 0;
};

因此第1行在编译时没有问题,但第2行给出了链接器错误。我理解链接器错误。没有要定义的链接。但为什么第1行没有给出任何错误?括号有什么区别?

使用VS2013。

谢谢。

1 个答案:

答案 0 :(得分:4)

NoDef nd1();  

声明一个名为nd1的函数,返回Nodef个对象,没有错误

NoDef nd2;

尝试使用未定义的构造函数,因此链接器不满意