我不能做到这一点:
class A
{
public:
A()
{
}
};
A a1();
因为A a1();
看起来像一个函数原型。
但我可以这样做:
class B
{
public:
B(std::string argument)
{
std::cout << argument;
}
};
B b1("Text");
这两件事本质上是相同的,只是编译器能够区分 B b1("Text");
不是函数原型,因为括号中传递了一些数据。
是否有任何理由必须为 A 省略括号,或者是因为编译器认为它是一个函数定义?