解决浅层复制中容易出现迷途指针的方法
来源:互联网 发布:山西大学教务网络 编辑:程序博客网 时间:2024/04/30 15:58
#include <iostream>
using namespace std;
class A
{
public:
A()
{
pa = new int;
*pa = 5;
cout<<"A 被创建"<<endl;
}
A(const A& a)
{
pa = new int;
*pa = *(a.pa);------------》避免被复制的和之前的都指向同一个地址,这里开辟一个新地址,把值丢到新地址里面去。你该干嘛干嘛去
cout<<"A 被复制:"<<*pa<<endl;
}
~A()
{
delete pa;
pa =NULL;
cout<<"A 被销毁"<<endl;
}
void print()
{
cout<<"pa:"<<*pa<<endl;
}
void set(int i)
{
*pa = i;
}
private:
int *pa;
};
int main()
{
A *pa = new A();
pa->print();
//cout<<"a:"<<<<endl;
A b =*pa;
b.print();
pa->set(21);
pa->print();
b.print();
delete pa;
return 0;
}
- 解决浅层复制中容易出现迷途指针的方法
- 解决容易出现内存泄露的方法
- 空指针和迷途指针的区别
- 空指针和迷途指针的区别
- 空指针和迷途指针的区别
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 《C和指针》——宏中容易出现的错误
- c++一般指针的深层复制和浅层复制(1)
- VB中容易出现的溢出错误
- c++中new容易出现的问题
- ExtJs4.0.7 Dynamic tree 动态菜单树
- 连接数据库所需要的封装的的类和接口
- linux下apache的安装与配置
- Delphi基础语法
- #与javascript:void(0)的区别
- 解决浅层复制中容易出现迷途指针的方法
- MFC单文档的窗口分割
- 浪潮之巅读书笔记(四)
- The Deferred objec
- typedef(小结4)
- QT中QString 和 LPCWSTR 的相互转换
- android ntp和GPS获取网络时间问题
- ie6下的fixed
- Java递归算法的小例子 求1+2+3...+1000 和