【发布时间】:2018-10-04 04:47:11
【问题描述】:
假设我有一堂课
class Test{
public:
int x;
Test(const Test& obj){x=obj.x;}
};
为什么
Test object_name(Test random_name);
运行并且不需要另一个对象作为参数?。
. 像Test random_name(Test another_random(...)) 这样的东西,让它成为一种永无止境的对象声明方式?
【问题讨论】:
-
Test object_name(Test random_name);是一个函数声明,它不会“运行”。 -
OP 是对的,它compiles and runs on g++,即使是
Test object_name(Test random_name (Test another_random_name (Test new_identifier))); -
这不是错误。这是一个有效的函数声明。它没有任何问题。
-
不是对象创建,你在
int main()函数中声明了一个函数 -
我同意 P.W.这看起来像是经常出现的“最令人头疼的解析”类型问题的变体……