我不知道我的C ++课程的问题。
template <typename T> class Array {...};
void main(int argc, char* argv[]) {
Array<int> *a1 = new Array<int>();
Array<int> a2();
a2 = *a1; // <--
}
在注意到的行(&lt; - )会发生什么? a)调用a2拷贝构造函数。 b)a2的地址等于指针a1的地址。 c)调用a2的复制赋值运算符 d)编译错误
证明你的答案。
答案 0 :(得分:1)
d)编译错误,因为你有令人烦恼的解析:
Array<int> a2(); // Declaration of function which takes no argument and return Array<int>