#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。
谢谢。
答案 0 :(得分:4)
NoDef nd1();
声明一个名为nd1
的函数,返回Nodef
个对象,没有错误
NoDef nd2;
尝试使用未定义的构造函数,因此链接器不满意