【发布时间】:2014-12-17 03:19:54
【问题描述】:
1.如果我这样实例化对象,不会发生错误。
class A {};
int main () {
A a = A ();
A &b = a;
return 0;
}
2.如果我以这种方式实例化对象,当a 的引用被复制到b 时,编译器会报告error C2440: 'initializing' : cannot convert from 'A (__cdecl \*)(void)' to 'A &'。
class A {
};
int main () {
A a();
A &b = a;
return 0;
}
3. 但是如果我在第二种方式的实例化过程中添加一个带参数的构造函数并将一些参数传递给这个ctor,就没有错误!
class A {
public:
A (int a) {}
};
int main () {
A a(5);
A &b = a;
return 0;
}
谁能解释一下?
【问题讨论】:
标签: c++ object constructor reference instantiation