原帖来自于CSDN,链接为:
有关拷贝构造函数的说法不正确的是( )
焦点在于
B) 类中只有一个拷贝构造函数 [错]
C) 拷贝构造函数可以有多个参数 [对]
其实也是一个同问题。VC6.0下多参数的拷贝构造函数是可以通过编译并运行的。
可以通过编译并运行。所以总结:B是错误的,C是正确的。
焦点在于
B) 类中只有一个拷贝构造函数 [错]
C) 拷贝构造函数可以有多个参数 [对]
其实也是一个同问题。VC6.0下多参数的拷贝构造函数是可以通过编译并运行的。
对于拷贝构造函数参数的说话 copy constructors must accept a single argument of reference to the same class type. More arguments can be supplied, provided all subsequent arguments have defaults. 拷贝构造函数允许提供多个参数 因此C是正确的 |
class A { public: A(){cout << 0 << endl;}; A(const A& a){cout << 1 << endl;}; A(const A& a,int i){cout << i << endl;}; }; int main() { A a; A b(a,5); return 0; } |
可以通过编译并运行。所以总结:B是错误的,C是正确的。