| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:关于运行结果的闪现问题(我用的是dev c++ 编译的)
只看楼主 加入收藏
tianxiao110
Rank: 1
等 级:新手上路
帖 子:63
专家分:1
注 册:2010-7-23
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:8 
关于运行结果的闪现问题(我用的是dev c++ 编译的)
include<iostream>
using namespace std;
class  box
{
       public:
       box(int x,int y,int z)
       {
               chang=x;
               kuan=y;
               gao=z;
       }
       virtual void show ()
       {
            cout<<chang<<"  "<<kuan<<"  "<<gao<<endl;
       }
       virtual ~box()
       {
             cout<<"基类清理"<<endl;
       }      
      
       protected:
       int chang;
       int kuan;
       int gao;
};
class box1:public box
{
      public:
      box1(int x,int y,int z,int u):box(x,y,z)
      {
            color=u;
      }
      virtual void show()
      {
           cout<<chang<<"  "<<kuan<<"  "<<gao<<"  "<<color<<endl;
      }
      virtual ~box1()
      {
              cout<<"派生类清理"<<endl;
      }        
      protected:
      int color;
};


int   main()
{
      box b(1,1,1);
      box1 bb(1,1,1,1);
      box *p;
      p=&b;
      p->show();
      p=&bb;
      p->show();
      system("pause");
      return(0);
      system("pause");//   我已经用了俩次system("pause");希望能看清点可是,我还是看不到析构函数的输出语句??????
 
      
}
搜索更多相关主题的帖子: 闪现 编译 dev 结果 运行 
2010-07-31 10:54
mxs810
Rank: 9Rank: 9Rank: 9
来 自:火星
等 级:贵宾
威 望:16
帖 子:234
专家分:1122
注 册:2006-10-19
收藏
得分:0 
      system("pause");
      return(0);
      system("pause");
你 把system("pause");放在return后面不管用的~~

你可以在return设置一个断点,不就可以看见结果了吗?

授人以鱼不如授人以渔
2010-07-31 11:06
tianxiao110
Rank: 1
等 级:新手上路
帖 子:63
专家分:1
注 册:2010-7-23
收藏
得分:0 
回复 2楼 mxs810
谢谢你,但你能告诉我怎么设定断点吗??
2010-07-31 11:18
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
virtual ~box()
       {                              
             cout<<"基类清理"<<endl; //这里设断
        }  

因为你的对象是创建在‘栈’上的,所以在函数返回时,编译器会给你自动插入一段调用析构函数的代码。但这段代码你是看不到的。你只能在上面的位置下断,看到它调用的过程。   

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-31 11:37
tianxiao110
Rank: 1
等 级:新手上路
帖 子:63
专家分:1
注 册:2010-7-23
收藏
得分:0 
回复 4楼 东海一鱼
你能帮我把程序设定修改下吗?让它慢点让我能看见结果,谢谢咯,呵呵。
2010-07-31 11:44
mxs810
Rank: 9Rank: 9Rank: 9
来 自:火星
等 级:贵宾
威 望:16
帖 子:234
专家分:1122
注 册:2006-10-19
收藏
得分:0 
回复 3楼 tianxiao110
dev我没有用过
你看看是不是ctrl + F5,
然后进入调试状态试试

授人以鱼不如授人以渔
2010-07-31 11:45
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:10 
没用过DEV

用个笨办法,在
virtual ~box()
       {                              
             cout<<"基类清理"<<endl;
             system("pause");       //这里加个
        }


举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-31 11:52
tianxiao110
Rank: 1
等 级:新手上路
帖 子:63
专家分:1
注 册:2010-7-23
收藏
得分:0 
回复 7楼 东海一鱼
谢谢。噢啦
2010-07-31 16:38
MyStar
Rank: 1
等 级:新手上路
帖 子:75
专家分:9
注 册:2010-3-30
收藏
得分:0 
呵呵
2010-07-31 18:19
快速回复:关于运行结果的闪现问题(我用的是dev c++ 编译的)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020316 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved