当我试图用空的默认构造函数创建对象,但在ANSI C++中添加括号时会发生什么?
我有一个叫做Complex的类,用来表示复数。我为类定义了一个空的默认构造函数,该类只将消息打印到屏幕上。 当我尝试在main函数中创建类的对象时,如下所示:当我试图用空的默认构造函数创建对象,但在ANSI C++中添加括号时会发生什么?,c++,compilation,C++,Compilation,我有一个叫做Complex的类,用来表示复数。我为类定义了一个空的默认构造函数,该类只将消息打印到屏幕上。 当我尝试在main函数中创建类的对象时,如下所示: Complex c1(); 使用BorlandC的编译器没有给出语法错误,但它没有创建对象。编译器是如何解释这一行的?编写此代码时: int foo(); Complex c1(); …它声明了一个名为foo的函数,该函数返回一个int 当你写这篇文章时: int foo(); Complex c1(); …它声明了一个名为c1
Complex c1();
使用BorlandC的编译器没有给出语法错误,但它没有创建对象。编译器是如何解释这一行的?编写此代码时:
int foo();
Complex c1();
…它声明了一个名为foo的函数,该函数返回一个int
当你写这篇文章时:
int foo();
Complex c1();
…它声明了一个名为c1的函数,该函数返回一个复数
输了
与流行的信念相反,这不是最令人烦恼的解析,但它是接近的。
它是函数声明,而不是对象构造。作为一个奇怪的后续问题,你能提一下你认为最令人烦恼的解析吗?IslamEl Rougy Complexarg还声明了一个函数。第二最烦人的解析?