class a
{
a();
~a();
public:
CString sk;
int sk1;
int sk2;public:
a & operator =(a & s2);
}
a & a::operator =(a & s2)//重载赋值运算符
{
this->sk = s2.sk;
this->sk1 = s2.sk1;
this->sk2 = s2.sk2;
return * this;
}
这样写了以后,运行也都正常,不过我总是觉得有些不好的地方,会有内存的泄漏吗?该如何改进这个重载赋值运算符呢????希望大家帮帮我
{
a();
~a();
public:
CString sk;
int sk1;
int sk2;public:
a & operator =(a & s2);
}
a & a::operator =(a & s2)//重载赋值运算符
{
this->sk = s2.sk;
this->sk1 = s2.sk1;
this->sk2 = s2.sk2;
return * this;
}
这样写了以后,运行也都正常,不过我总是觉得有些不好的地方,会有内存的泄漏吗?该如何改进这个重载赋值运算符呢????希望大家帮帮我
解决方案 »
- wav转化为mp3
- socket超级疑难?
- 明天放假回家了,散分。。。。祝大家春节快乐
- 如何注册第三方控件?急!!!!!
- 这个Error如何解决?fatal error C1083: Cannot open include file: 'cstringt.h': No such file
- 如何像弹出子窗体一样弹出一个对话框? --着急!!!--
- 对CRecordset调用AddNew方法,出现Exception:记录集只读,为什么?
- 这新信息是什么意思!
- 如何能够显示网上邻居登录的对话框操作
- 有没有快速的异形窗口实现方法?
- MFC怎样显示ASCII字符►
- 如何中断阻塞方式的recv操作?
这里直接赋值,没什么内存泄漏
{
if(this == &s2)
return *this;
sk = s2.sk;
sk1 = s2.sk1;
sk2 = s2.sk2;
return * this;
}实际上,定义拷贝赋值运算符时首先做自赋值检查也是个好习惯,当拷贝过程中存在内存释放和重新分配动作时尤为重要。