不死奇迹 2015-09-09 16:37 采纳率: 33.3%
浏览 1460

定义类的指针变量如何重载类的拷贝构造函数和重载=号

#ifndef LIST_OPRATOR
#define LIST_OPRATOR
#include
using namespace std;
class Complex
{
private:
int a;
char* p;

public:
void operator=(Complex* c2);
Complex(const Complex* c2);
Complex(int a,char* m);
~Complex()
{
cout<<"析构"<<" "<<p<<endl;
delete p;
p=NULL;//避免野指针
a=0;
};

};
#endif
Complex::Complex(int a,char* m)
{
this->a=a;
p=new char[strlen(m)+1];
strcpy(p,m);
}

Complex::Complex(const Complex* c2)
{
p=new char[strlen(c2->p)+1];
if(c2->p!=NULL)
{
strcpy(p,c2->p);
}
a=c2->a;
}

void Complex::operator=(Complex* c2)
{
if(p!=NULL)
{
delete p;
p=NULL; //避免野指针
}
if(c2->p!=NULL)
{
p=new char[strlen(c2->p)+1];
strcpy(p,c2->p);
}
a=c2->a;
}
void main993()
{

Complex* c1=new Complex(1,"abcd");
Complex* c2=c1;
Complex* c3=new Complex(2,"lkjh");
c2=c3;
delete c1;
delete c2;
delete c3;
system("pause");
}

void main()
{
main993();
}

  • 写回答

3条回答 默认 最新

  • 不死奇迹 2015-09-09 16:38
    关注

    delete c3时就down掉来,分布调试时没有进入任何重载函数,求解指针对象的重载如何实现

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥50 基于极化码的电力线通信系统仿真