假设A 是一个类的名字,下面哪段程序不会调用A的复制构造函数?
A.A a1,a2; a1 = a2;
B.void func( A a) { cout << "good" << endl; }
C.A func( ) { A tmp; return tmp; }
D.A a1; A a2(a1);
D哪错了啊?
书上是这么写的:
现有类的定义如下:
class MyClass {
public:
MyClass(int x): val(x) {}
void Print() const {cout << "const:val=" << val << '\t';}
void Print() {cout << "val=" << val << '\t';}
private:
int val;
};
在main函数中定义该类的l两个对象:const MyClass obj1(10); MyClass obj2(20);
依次执行obj1.Print(); obj2.Print();的输出结果是()。
A.val=10 const:val=20
B.const:val=10 const:val=20
C.const:val=10 val=20
D.val=10 val=20
为什么选C啊?