添加拷贝构造函数,并使用对象obj1初始化新对象。
#include<iostream.h>
class Sample
{
public:
Sample();
Sample(int);
~Sample();
void display();
private:
int x;
};
Sample::Sample() {
x=0;
cout<<"constructing normally\n";
}
Sample::Sample(int m) {
x=m;
cout<<"constructing with a number:"<<x<<endl;
}
void Sample::display() {
cout<<"display a number:"<<x<<endl;
}
Sample::~Sample() {
cout<<"destructing\n";
}
int main()
{
Sample obj1;
Sample obj2(20);
obj1.display();
obj2.display();
return 0;
}
[解决办法]
#include<iostream.h> class Sample { public: Sample(); Sample(int);Sample(const Sample &e); //增加 ~Sample(); void display(); private: int x; }; Sample::Sample() {x=0; cout<<"constructing normally\n"; } Sample::Sample(int m) {x=m; cout<<"constructing with a number:"<<x<<endl;}Sample::Sample(const Sample &e) //增加 { x=e.x; cout<<"copy constructor"<<endl; }void Sample::display() {cout<<"display a number:"<<x<<endl; } Sample::~Sample() {cout<<"destructing\n"; } int main() { Sample obj1; Sample obj2(20); obj1.display(); obj2.display(); Sample obp(obj1);//增加 obp.display();//增加 system("pause");return 0;}