【c++程序】浅层复制构造函数

来源:互联网 发布:mac用哪个剪辑视频软件 编辑:程序博客网 时间:2024/05/16 06:40
/* 编译器提供默认构造函数和析构函数,同样也提供复制构造函数,   编译器提供的默认复制构造函数只是把传递进来的每一个成员变量   复制到新对象的成员变量中,然后两个对象中的变量均指向存放类   成员变量的那块内存区域。   */#include<iostream>using namespace std;class A{public:A(){x=new int;*x=5;}~A(){delete x;x=NULL;}/*A(const A&a){  cout<<" 复制构造函数执行"<<endl;  x=a.x;}*/  //void print()const{cout<<*x<<endl;}void set(int i){*x=i;}private:int *x;};int main(){   A*a=new A();   cout<<"a:";   a->print();   cout<<endl;   A b=(*a);//复制构造函数,系统会自动分配   b.print();   a->set(32);   cout<<"b:";   b.print();   cout<<endl;   //delete a;//前面析构函数早已将其删除,故程序崩溃;   return 0;}

0 0
原创粉丝点击