鱼C论坛

 找回密码
 立即注册
查看: 4576|回复: 2

不用副本构造器会出什么问题

[复制链接]
发表于 2012-12-7 16:08:34 | 显示全部楼层 |阅读模式
1鱼币
小甲鱼在讲副本构造器时说,对象里有指针时直接赋值会出现问题,说删掉一个对象时指针也被删掉了,另一个对象还在用这个指针就会出现问题,可我怎么也想不出一个会出现问题的实例,哪位前辈可以给个实例吗??

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-12-7 16:31:36 | 显示全部楼层
终于自己打到了个实例
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-12-7 16:33:37 | 显示全部楼层
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;

  4. class Base
  5. {   public:
  6.         int a;
  7.         int *p;

  8.         Base(int a);
  9.         void math();
  10.         ~Base();
  11. };

  12. Base::Base(int a)
  13. {
  14.    this->a=a;
  15.            p=&a;
  16. }

  17. Base::~Base()

  18. {   
  19.         std::cout<<"要删了\n";
  20.        
  21. }

  22. void Base::math()
  23. {
  24.         std::cout<<"我帅吗??\n";

  25.         std::cout<<"我有"<<*p<<"岁了\n";  //这里对指针解引用,删除对象后不能用
  26. }

  27. int main()
  28. {   Base *p;
  29.          p=new Base(12547);

  30.         Base base2=*p;

  31.        
  32.         delete p;//这里删除一个对象,

  33.         p->math();
  34.         base2.math();
  35.        
  36.        


  37.        


  38.         return 0;
  39. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 18:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表