这段程序编译不能通过,返回值不同能否够成覆盖C/C++ code#includeiostreamusing namespace stdclass A{
这段程序编译不能通过,返回值不同能否够成覆盖
- C/C++ code
#include<iostream>using namespace std;class A{public: A() { } A(int m,int n):i(m),j(n){} void print() { cout<<i<<" "<<j<<endl; } A(A &a) { cout<<"复制构造函数调用"<<endl; } ~A() { }private: int i; int j;};void main(){ A b=A(3,4); b.print();}这段程序编译不能通过,返回值不同能否够成覆盖
[解决办法]
为什么不能编译?这段程序很正常吧
[解决办法]
返回值不同不能构成重载。但你的程序不存在这样的问题。
[解决办法]
我的编译器在这一行报错:
cout<<"复制构造函数调用"<<endl;
把中文消息改成英文消息就没事了。
[解决办法]
你的程序不存在A::A(A)这个函数,所以在A b=A(3,4);这行会报错。
可以改成A a(3,4);
//A b=A(3,4);
A b(a);
这样可以编译通过,但是你这个通过复制构造得到的b的值是随机数,而不是如你想的(3,4);
