青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

關(guān)于c++對象全局對象析構(gòu)的幾點記錄

Posted on 2009-02-25 20:35 藍塵 閱讀(1603) 評論(2)  編輯 收藏 引用 所屬分類: C++
#include<iostream>
using std::cout;
using std::endl;
class CDust{
public:
    CDust()
    {
        cout 
<< " CDust constructor " << endl;
    }

    
~CDust()
    {

        cout 
<< " ~CFoo destructor " << endl;
    }
};


CDust A;

int main()
{
    
return 0;
}
我想類似的代碼在網(wǎng)上Google下應(yīng)該有不少
嘗試了下,在vc6.0的情況下,是沒有輸出 "~CFoo destructor", 但這并不代表 ~CDust() 沒有執(zhí)行.
在~CDust里面設(shè)置斷點,會發(fā)現(xiàn)事實上程序運行時進入了析構(gòu)函數(shù)里  // -_! 表達好牽強
本來想實在跟蹤這里開始程序發(fā)生了什么調(diào)用了什么,發(fā)現(xiàn)功底不足,完全不明白,就先打斷了
而再在' return 0 ' 語句前面加上斷點,會看到這個新加的斷點比析構(gòu)里面的斷點先到達,... 
以現(xiàn)在c++的造詣和vc6.0的了解情況來看,頭痛了
為什么 return 0 后程序不是正常結(jié)束了才去執(zhí)行 全局對象的析構(gòu)?

改寫下代碼
#include<iostream.h>

class CDust{
public:
    CDust()
    {
        cout 
<< " CDust constructor " << endl;
    }

    
~CDust()
    {

        cout 
<< " ~CFoo destructor " << endl;
    }
};


CDust A;

int main()
{

    
return 0;

}

這樣用舊版本的頭文件實現(xiàn),控制臺輸出了意外的兩個調(diào)用 --- 析構(gòu)函數(shù)輸出顯示了..

是cout在頭文件的實現(xiàn)方式不同?

在dev-c++里面,運行第一代代碼
根據(jù)斷點的設(shè)置測試,也是先執(zhí)行了 main()函數(shù)里面的 return 0 才進入全局函數(shù)的析構(gòu),也能發(fā)現(xiàn)析構(gòu)函數(shù)里面的輸出被調(diào)用了,控制臺有明確的顯示
這樣一來,又不明白了...
在vc6.0里面為什么執(zhí)行了全局函數(shù)的析構(gòu)卻沒有所謂的輸出?
是因為cmd控制臺在'return 0'程序權(quán)限收回  // 好像扯到系統(tǒng)的一些混亂的舊記憶了...

網(wǎng)游了一下
找到暫時比較清晰的說法是:
   In C++, the constructor of a global object is executed before the main() function(of course after the STARTUP code), while the destructor
is invoked after the main() function. So in my humble opinion, the main() function is a bridge between the constructor and the destructor.Further more, the constructor and the destructor is the actual manager of the whole program, because they can manage all the
resources of the program(for instance, the constructor allocate memory units and the destructor free them.I'am not sure of this, any comments will be appreciated in advance.).
4)In C++, is it true that the resources obtained during the constructor and the destructor (both belong to a global object)are managed by themselves and have nothing with the main() function.Therfore, I think the main() function is not the king in C++ as it is in C. 
   //感謝提出此說法的朋友
 
  _startup才是用戶程序的起點和終點? 的確,調(diào)用_exit()函數(shù)再斷點測試,全局對象的destructor是沒有進入的機會   //長見識了

  就此先打斷... 再深入今晚就這樣完了.
  就此記錄下,以后再接觸



不小心又接觸了...
懶得開新的就集中在這里吧

在main()里面手動調(diào)用全局對象的析構(gòu), 最后程序都會執(zhí)行兩次析構(gòu)調(diào)用... 在<iostream.h>的cout這種情況下明顯,在std::cout下還得靠斷點設(shè)置才能體現(xiàn)到(vc6的情況)
     這里是一種解析
     {
      Once a destructor is invoked for an object, the object no longer exists; the behavior is undefined if the destructor is invoked for an object whose lifetime has ended. [Example: if the destructor for an automatic object is explicitly invoked, and the block is subsequently left in a manner that would ordinarily invoke implicit destruction of the object, the behavior is undefined
}
     非global static object 也會出現(xiàn)兩次調(diào)用, 區(qū)別只在與一個在main() 退出之前,一個在之后...
(的確,手工調(diào)用析構(gòu)函數(shù)的情況很少出現(xiàn)  -_! )
     如果我在析構(gòu)里面存在 釋放內(nèi)存 這一類實現(xiàn), 那第二次再次釋放不是容易出問題!!!
     以后遇到這種情況得注意檢測代碼的添加...

Feedback

# re: 關(guān)于c++對象全局對象析構(gòu)的幾點記錄  回復(fù)  更多評論   

2009-02-26 12:05 by 陳梓瀚(vczh)
說不定因為cout被析構(gòu)了,你的代碼就沒看到輸出了。

# re: 關(guān)于c++對象全局對象析構(gòu)的幾點記錄  回復(fù)  更多評論   

2009-02-27 19:28 by 藍塵
@陳梓瀚(vczh)
std::cout 被析構(gòu), 而且是只在vc6.0下面的 global static object ? 也就是說剩下的就是編譯器的實現(xiàn)問題了(網(wǎng)上的說法好像只有std::cout在vc6有這個情況)
等有時間時調(diào)試跟蹤下...
多謝提醒了

Copyright © 藍塵

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久网站免费| 久久午夜激情| 国产精品一区二区三区乱码| 亚洲一区在线视频| 久久久久**毛片大全| 精品成人一区| 欧美日韩国产综合久久| 亚洲欧美日韩网| 免费观看欧美在线视频的网站| 亚洲激情综合| 国产精品久久久久久久久久久久| 欧美中文在线观看国产| 亚洲欧洲一二三| 午夜精彩视频在线观看不卡| 一区二区在线视频观看| 欧美女主播在线| 午夜在线观看欧美| 亚洲黄色天堂| 久久久久久久久久久久久9999 | 在线精品在线| 欧美网站在线观看| 老司机精品福利视频| 一区二区三区欧美日韩| 老司机免费视频久久| 亚洲午夜在线观看视频在线| 国产一区二区三区高清在线观看| 欧美激情小视频| 欧美一区二区三区视频| 日韩午夜在线视频| 蜜桃久久av| 亚洲欧美日韩中文在线制服| 亚洲黄色高清| 国产午夜精品美女视频明星a级 | 亚洲国产一区二区三区a毛片| 欧美特黄一级大片| 女女同性精品视频| 欧美在线视频一区二区| 亚洲深夜福利视频| 亚洲国产精品国自产拍av秋霞| 欧美影院在线| 亚洲一区二区不卡免费| 亚洲国产女人aaa毛片在线| 国产色婷婷国产综合在线理论片a| 欧美猛交免费看| 免费观看亚洲视频大全| 欧美在线一级视频| 亚洲伊人久久综合| 99re亚洲国产精品| 亚洲久久一区| 亚洲精品一区二区三区福利| 欧美电影资源| 美女网站久久| 老牛国产精品一区的观看方式| 午夜精品福利视频| 亚洲一区二区免费视频| 99视频在线精品国自产拍免费观看 | 欧美中文字幕视频| 亚洲嫩草精品久久| 亚洲天堂av在线免费| 一本久道久久综合中文字幕| 亚洲精品一区二区三区福利| 亚洲欧洲视频在线| 亚洲精华国产欧美| 亚洲精品久久久久久下一站| 亚洲国产另类 国产精品国产免费| 欧美成人亚洲| 欧美成ee人免费视频| 欧美成人小视频| 亚洲福利av| 亚洲精品乱码久久久久久久久 | 久久精品中文| 久久久久久久精| 卡通动漫国产精品| 欧美成年视频| 亚洲激情啪啪| 亚洲美女视频在线观看| 一本大道久久精品懂色aⅴ | 欧美天天视频| 国产精品免费一区二区三区在线观看| 国产精品久久久久久模特| 国产精品嫩草影院av蜜臀| 国产欧美一区二区精品忘忧草| 国产午夜亚洲精品不卡| 红杏aⅴ成人免费视频| 亚洲第一福利视频| 99国产精品国产精品久久| 一本一本a久久| 午夜精品网站| 久久琪琪电影院| 欧美激情一区二区三区在线视频 | 久久国产一区| 免费欧美在线视频| 亚洲精品国产品国语在线app| 一本色道久久88综合日韩精品| 亚洲一区二区三区涩| 欧美综合国产| 欧美精品 国产精品| 欧美视频在线观看| 国产视频一区二区三区在线观看| 黄网站色欧美视频| av成人激情| 久久高清一区| 欧美国产日韩二区| 亚洲午夜伦理| 麻豆精品网站| 国产精品嫩草99av在线| 在线精品视频一区二区三四| 99在线精品观看| 久久精品国产第一区二区三区最新章节| 免费久久99精品国产自在现线| 亚洲精品在线视频| 久久精品亚洲一区二区三区浴池| 欧美成人a视频| 国产精品毛片大码女人| 亚洲国产裸拍裸体视频在线观看乱了中文| 亚洲图片欧美午夜| 奶水喷射视频一区| 亚洲欧美日韩精品在线| 欧美成人免费网站| 国产日韩欧美麻豆| 99re6这里只有精品| 久久久噜噜噜久噜久久 | 老司机午夜精品视频在线观看| 亚洲精品乱码| 久久蜜桃精品| 国产欧美在线视频| 在线亚洲免费视频| 欧美成人有码| 久久久精品一品道一区| 欧美视频一区二区三区四区| 亚洲全部视频| 久久综合精品国产一区二区三区| 在线视频精品一区| 欧美精品一区二| 亚洲国产欧美日韩| 久久深夜福利免费观看| 亚洲欧美日韩系列| 国产精品久久二区| 99精品国产在热久久婷婷| 欧美jizzhd精品欧美巨大免费| 香蕉成人伊视频在线观看| 欧美视频在线观看免费| 99re亚洲国产精品| 亚洲国产另类精品专区| 毛片一区二区三区| 亚洲福利视频三区| 久久这里只有精品视频首页| 亚洲欧美中文另类| 国产精品麻豆成人av电影艾秋| 99在线精品免费视频九九视| 亚洲国产精品va在线看黑人 | 欧美激情一区二区三区蜜桃视频| 在线观看欧美日韩国产| 久久影院午夜论| 久久国产精品久久久久久| 国产午夜精品一区二区三区欧美 | 久热精品在线| 久久国产毛片| 激情成人综合| 欧美国产第二页| 欧美国产日韩一区二区三区| 亚洲精品国产精品国自产观看浪潮| 欧美大片在线观看| 欧美风情在线观看| 一区二区三区|亚洲午夜| 亚洲精品欧洲| 国产精品黄色在线观看| 性欧美长视频| 久久国产精彩视频| 亚洲成色www8888| 91久久香蕉国产日韩欧美9色| 欧美精品啪啪| 亚洲一区在线直播| 新67194成人永久网站| 韩曰欧美视频免费观看| 嫩草影视亚洲| 欧美理论电影网| 亚洲欧美国产高清| 久久精品国产亚洲a| 亚洲国产成人精品女人久久久 | 国产精品一区二区久久久久| 欧美在线观看视频在线| 久久久久久久波多野高潮日日| 亚洲国产欧美久久| 99在线热播精品免费99热| 国产伦精品一区二区三区照片91 | 性感少妇一区| 亚洲人成网站精品片在线观看| 日韩视频免费| 国产真实乱偷精品视频免| 欧美顶级少妇做爰| 欧美性猛片xxxx免费看久爱| 久久精品国产第一区二区三区| 米奇777在线欧美播放| 亚洲一区视频在线| 久久精品国产99国产精品| 99re66热这里只有精品3直播| 亚洲欧美成人综合| 亚洲国产99| 亚洲午夜小视频|