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

醬壇子

專注C++技術 在這里寫下自己的學習心得 感悟 和大家討論 共同進步(歡迎批評!?。。?/p>

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  66 Posts :: 16 Stories :: 236 Comments :: 0 Trackbacks

公告

王一偉 湖南商學院畢業 電子信息工程專業

常用鏈接

留言簿(19)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 389018
  • 排名 - 64

最新隨筆

最新評論

閱讀排行榜

評論排行榜

<轉自csdn相關問題回復>

CObject::AssertValid ? 成員函數提供對對象內部狀態的運行時檢查。盡管從 ? CObject ? 派生類時不需要重寫 ? AssertValid,但可以通過重寫使您的類更安全可靠。AssertValid ? 應在對象的所有成員變量上執行斷言,以驗證它們包含有效值。例如,它應檢查指針成員變量不為 ? NULL。 ?
? ?
? 下面的示例顯示如何聲明 ? AssertValid ? 函數: ?
? class ? CPerson ? : ? public ? CObject ?
? { ?
? protected: ?
? ? ? ? CString ? m_strName; ?
? ? ? ? float ? ? ? m_salary; ?
? public: ?
? #ifdef ? _DEBUG ?
? ? ? ? virtual ? void ? AssertValid() ? const; ? ? ? // ? Override ?
? #endif ?
? ? ? ? // ? ... ?
? }; ?
? 當重寫 ? AssertValid ? 時,在執行您自己的檢查之前請調用 ? AssertValid ? 的基類版本。然后使用 ? ASSERT ? 宏檢查您的派生類特有的成員,如下所示: ?
? ?
? #ifdef ? _DEBUG ?
? void ? CPerson::AssertValid() ? const ?
? { ?
? ? ? ? // ? call ? inherited ? AssertValid ? first ?
? ? ? ? CObject::AssertValid(); ?
? ?
? ? ? ? // ? check ? CPerson ? members... ?
? ? ? ? ASSERT( ? !m_strName.IsEmpty()); ? // ? Must ? have ? a ? name ?
? ? ? ? ASSERT( ? m_salary ? > ? 0 ? ); ? // ? Must ? have ? an ? income ?
? } ?
? #endif ?
? 如果任何成員變量存儲對象,則可以使用 ? ASSERT_VALID ? 宏測試它們的內部有效性(如果它們的類重寫了 ? AssertValid)。 ?
? ?
? 例如,考慮 ? CMyData ? 類,該類在其成員變量之一中存儲了一個 ? CObList。CObList ? 變量 ? m_DataList ? 存儲了一個 ? CPerson ? 對象的集合。CMyData ? 的簡化聲明如下所示: ?
? ?
? class ? CMyData ? : ? public ? CObject ?
? { ?
? ? ? ? // ? Constructor ? and ? other ? members ? ... ?
? ? ? ? protected: ?
? ? ? ? ? ? ? CObList* ? m_pDataList; ?
? ? ? ? // ? Other ? declarations ? ... ?
? ? ? ? public: ?
? #ifdef ? _DEBUG ?
? ? ? ? ? ? ? virtual ? void ? AssertValid( ? ) ? const; ? // ? Override ?
? #endif ?
? ? ? ? // ? Etc. ? ... ?
? }; ?
? CMyData ? 中重寫的 ? AssertValid ? 如下所示: ?
? ?
? #ifdef ? _DEBUG ?
? void ? CMyData::AssertValid( ? ) ? const ?
? { ?
? ? ? ? // ? Call ? inherited ? AssertValid ?
? ? ? ? CObject::AssertValid( ? ); ?
? ? ? ? // ? Check ? validity ? of ? CMyData ? members ?
? ? ? ? ASSERT_VALID( ? m_pDataList ? ); ?
? ? ? ? // ? ... ?
? } ?
? #endif ?
? CMyData ? 使用 ? AssertValid ? 機制測試其數據成員中存儲的對象的有效性。CMyData ? 中重寫的 ? AssertValid ? 為它自己的 ? m_pDataList ? 成員變量調用 ? ASSERT_VALID ? 宏。 ?
? ?
? 因為 ? CObList ? 類也重寫 ? AssertValid,所以有效性測試不在該級別停止。該重寫對列表的內部狀態執行附加有效性測試。因此,對 ? CMyData ? 對象的有效性測試將導致對存儲的 ? CObList ? 列表對象內部狀態的附加有效性測試。 ?
? ?
? 再多進行一些操作,還可以添加對存儲在列表中的 ? CPerson ? 對象的有效性測試。可以從 ? CObList ? 派生 ? CPersonList ? 類,并重寫 ? AssertValid。在重寫中可調用 ? CObject::AssertValid,然后循環訪問列表,在列表中存儲的每個 ? CPerson ? 對象上調用 ? AssertValid。本主題開始所示的 ? CPerson ? 類已重寫了 ? AssertValid。 ?
? ?
? 當為調試生成時,這是一種功能極強的機制。當接著為發布生成時,該機制自動關閉。 ?
? ?
? AssertValid ? 的限制 ?
? 給定類的 ? AssertValid ? 函數的用戶應注意該函數的限制。觸發的斷言指示對象一定有誤,并且執行將暫停。但是,缺少斷言只指示未找到任何問題,并不保證對象是好的。??

當從 ? CObject ? 派生類時,在使用 ? DumpAllObjectsSince ? 將對象轉儲到“輸出”窗口時,可以重寫 ? Dump ? 成員函數以提供附加信息。 ?
? ?
? Dump ? 函數將對象的成員變量的文本化表示形式寫入轉儲上下文 ? (CDumpContext)。轉儲上下文類似于 ? I/O ? 流??梢允褂貌迦脒\算符 ? (<<) ? 向 ? CDumpContext ? 發送數據。 ?
? ?
? 重寫 ? Dump ? 函數時,應先調用 ? Dump ? 的基類版本以轉儲基類對象的內容。然后為派生類的每個成員變量輸出文本化說明和值。 ?
? ?
? Dump ? 函數的聲明如下所示: ?
? ?
? class ? CPerson ? : ? public ? CObject ?
? { ?
? public: ?
? #ifdef ? _DEBUG ?
? ? ? ? virtual ? void ? Dump( ? CDumpContext& ? dc ? ) ? const; ?
? #endif ?
? ?
? ? ? ? CString ? m_firstName; ?
? ? ? ? CString ? m_lastName; ?
? ? ? ? // ? And ? so ? on... ?
? }; ?
? 由于對象轉儲只在調試程序時有意義,所以 ? Dump ? 函數的聲明用 ? #ifdef ? _DEBUG ? / ? #endif ? 塊括起來。 ?
? ?
? 在下面的示例中,Dump ? 函數先為其基類調用 ? Dump ? 函數。然后,它將每個成員變量的簡短說明與該成員的值一起寫入診斷流。 ?
? ?
? #ifdef ? _DEBUG ?
? void ? CPerson::Dump( ? CDumpContext& ? dc ? ) ? const ?
? { ?
? ? ? ? // ? Call ? the ? base ? class ? function ? first. ?
? ? ? ? CObject::Dump( ? dc ? ); ?
? ?
? ? ? ? // ? Now ? do ? the ? stuff ? for ? our ? specific ? class. ?
? ? ? ? dc ? << ? "last ? name: ? " ? << ? m_lastName ? << ? "\n" ?
? ? ? ? ? ? ? << ? "first ? name: ? " ? << ? m_firstName ? << ? "\n"; ?
? } ?
? #endif ?
? 必須提供 ? CDumpContext ? 參數以指定轉儲輸出的目的地。MFC ? 的“Debug”版本提供名為 ? afxDump ? 的預定義 ? CDumpContext ? 對象,它將輸出發送到調試器。 ?
? ?
? CPerson* ? pMyPerson ? = ? new ? CPerson; ?
? // ? Set ? some ? fields ? of ? the ? CPerson ? object. ?
? //... ?
? // ? Now ? dump ? the ? contents. ?
? #ifdef ? _DEBUG ?
? pMyPerson->Dump( ? afxDump ? ); ?
? #endif ?
? 在 ? MFC ? 程序中,可以使用 ? DumpAllObjectsSince ? 轉儲有關堆中尚未釋放的所有對象的說明。DumpAllObjectsSince ? 轉儲自上個 ? CMemoryState::Checkpoint ? 以來分配的所有對象。如果未發生 ? Checkpoint ? 調用,則 ? DumpAllObjectsSince ? 將轉儲當前在內存中的所有對象和非對象。 ?
? ?
? 注意 ? ? ? 必須先啟用診斷跟蹤,然后才能使用 ? MFC ? 對象轉儲。 ?
? 注意 ? ? ? 程序退出時 ? MFC ? 將自動轉儲所有泄漏的對象,因此不必創建代碼在該點轉儲對象。 ?
? 以下代碼通過比較兩個內存狀態來測試內存泄漏,并在檢測到泄漏時轉儲所有對象: ?
? ?
? if( ? diffMemState.Difference( ? oldMemState, ? newMemState ? ) ? ) ?
? { ?
? ? ? ? TRACE( ? "Memory ? leaked!\n" ? ); ?
? ? ? ? diffMemState.DumpAllObjectsSince(); ?
? } ?
? 轉儲的內容如下所示: ?
? ?
? Dumping ? objects ? -> ?
? ?
? {5} ? strcore.cpp(80) ? : ? non-object ? block ? at ? $00A7521A, ? 9 ? bytes ? long ?
? {4} ? strcore.cpp(80) ? : ? non-object ? block ? at ? $00A751F8, ? 5 ? bytes ? long ?
? {3} ? strcore.cpp(80) ? : ? non-object ? block ? at ? $00A751D6, ? 6 ? bytes ? long ?
? {2} ? a ? CPerson ? at ? $51A4 ?
? ?
? Last ? Name: ? Smith ?
? First ? Name: ? Alan ?
? Phone ? #: ? 581-0215 ?
? ?
? {1} ? strcore.cpp(80) ? : ? non-object ? block ? at ? $00A7516E, ? 25 ? bytes ? long ?
? 大多數行開始處的大括號中的數字指定對象的分配順序。最近分配的對象具有最高編號,并顯示在轉儲的頂部。???
?
posted on 2007-03-07 16:41 @王一偉 閱讀(3371) 評論(1)  編輯 收藏 引用

Feedback

# re: debug調試中,AssertValid和Dump 這兩個函數怎么進行工作的? 2008-02-25 16:45 Tbag
支持  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            西西人体一区二区| 欧美综合第一页| 正在播放欧美视频| 日韩一级裸体免费视频| 亚洲精品在线视频观看| 99re66热这里只有精品4| 亚洲大胆人体在线| 亚洲欧洲另类| 亚洲午夜精品国产| 午夜精品国产| 久久久国产成人精品| 久久久精品一区二区三区| 裸体丰满少妇做受久久99精品| 久久视频在线视频| 亚洲高清视频在线| 亚洲国产小视频在线观看| 亚洲美女网站| 久久99在线观看| 欧美xx69| 国产精品女人久久久久久| 国语自产精品视频在线看一大j8 | 销魂美女一区二区三区视频在线| 亚洲女女女同性video| 欧美一区二区三区日韩视频| 久久亚洲一区二区三区四区| 欧美另类久久久品| 国产一区白浆| av成人免费在线| 久久久国产视频91| 亚洲精品永久免费| 久久久久久999| 国产精品成人观看视频国产奇米| 国产亚洲欧美激情| 亚洲色在线视频| 免费在线观看精品| 亚洲免费在线精品一区| 免费日韩视频| 国产色产综合色产在线视频| 一本一本久久a久久精品牛牛影视| 久久国产精品黑丝| 日韩午夜黄色| 欧美不卡一卡二卡免费版| 国产欧美日韩综合精品二区| 一卡二卡3卡四卡高清精品视频| 久久久免费精品| 亚洲网友自拍| 欧美日韩视频| 日韩一级精品| 亚洲激情一区| 欧美成人伊人久久综合网| 国内自拍一区| 久久九九免费| 久久爱www久久做| 国产视频在线一区二区| 亚洲欧美激情在线视频| 一本久道综合久久精品| 欧美人在线视频| 艳女tv在线观看国产一区| 亚洲高清不卡在线观看| 蜜桃精品久久久久久久免费影院| 韩国av一区二区三区| 久久久免费精品| 久久免费的精品国产v∧| 国产三级精品三级| 久久女同精品一区二区| 小处雏高清一区二区三区| 国产精品美女久久久久aⅴ国产馆| 亚洲天天影视| 亚洲男人影院| 国内久久婷婷综合| 麻豆免费精品视频| 久久综合色婷婷| 亚洲精品在线三区| 一级日韩一区在线观看| 欧美视频手机在线| 欧美一级网站| 亚洲免费网址| 国产精品自在欧美一区| 亚洲国产日日夜夜| 国产一区二区三区久久悠悠色av | 久久婷婷蜜乳一本欲蜜臀| 国内精品视频久久| 欧美激情麻豆| 欧美日本一区| 欧美一区二区三区视频在线观看| 亚洲中字在线| 狠狠色狠狠色综合日日91app| 老司机成人在线视频| 乱码第一页成人| 亚洲综合成人在线| 久久久www免费人成黑人精品| 亚洲国产99| 9i看片成人免费高清| 国产精品亚洲人在线观看| 久久久久久九九九九| 欧美成人69av| 香港久久久电影| 久久综合中文| 午夜久久久久久| 欧美阿v一级看视频| 午夜精品视频| 欧美成人免费网站| 久久成人人人人精品欧| 欧美激情视频在线免费观看 欧美视频免费一 | 久久亚洲私人国产精品va媚药| 久久婷婷国产综合尤物精品| 亚洲天堂av图片| 裸体歌舞表演一区二区| 亚洲欧美日韩成人高清在线一区| 久久精品视频在线看| 亚洲性夜色噜噜噜7777| 狂野欧美性猛交xxxx巴西| 亚洲一区二区精品在线| 久久网站免费| 久久精品成人| 欧美三级电影大全| 欧美激情一区在线| 国产亚洲成av人在线观看导航| 91久久在线播放| 尤物网精品视频| 欧美伊久线香蕉线新在线| 亚洲综合视频网| 欧美精品v日韩精品v国产精品 | 亚洲精品一区二区三区蜜桃久| 国内精品亚洲| 欧美一区二区三区播放老司机| 亚洲婷婷在线| 欧美另类视频| 91久久国产综合久久| 伊人成年综合电影网| 精品成人一区二区三区| 欧美在线视频在线播放完整版免费观看| 久久综合激情| 久久久久久久久岛国免费| 国产精品一区二区三区久久久| 亚洲美女一区| 99re6这里只有精品视频在线观看| 久久永久免费| 欧美成人在线网站| 亚洲丰满少妇videoshd| 久久激情五月婷婷| 久久躁日日躁aaaaxxxx| 狠狠狠色丁香婷婷综合激情| 久久爱另类一区二区小说| 久久久久久久综合狠狠综合| 国产亚洲a∨片在线观看| 久久精品国产精品亚洲精品| 久久综合99re88久久爱| 亚洲黑丝一区二区| 欧美日本一道本在线视频| 99综合在线| 午夜一级久久| 国产手机视频一区二区| 久久视频在线视频| 最新日韩中文字幕| 亚洲欧美视频一区二区三区| 国产老肥熟一区二区三区| 亚洲免费伊人电影在线观看av| 久久久av毛片精品| 亚洲精品在线观| 国产精品v欧美精品v日韩 | 亚洲狼人精品一区二区三区| 蜜桃久久av一区| 一本到12不卡视频在线dvd| 西西人体一区二区| 亚洲国产一二三| 欧美午夜免费影院| 欧美伊人影院| 亚洲精品久久久一区二区三区| 在线视频你懂得一区| 国产欧美日本一区二区三区| 久久国产精品黑丝| 91久久久久久| 亚洲日韩欧美视频一区| 欧美激情视频在线免费观看 欧美视频免费一 | 在线观看日韩专区| 欧美精品一级| 欧美中日韩免费视频| 亚洲区欧美区| 久久五月天婷婷| 亚洲视频在线一区| 伊人成年综合电影网| 国产精品成人aaaaa网站| 亚洲视频二区| 亚洲福利精品| 久久精视频免费在线久久完整在线看 | 一本久久青青| 亚洲国产精品久久| 久久精品一区| 亚洲女优在线| 日韩午夜在线观看视频| 黑人极品videos精品欧美裸| 在线观看久久av| 久久久激情视频| 亚洲日韩成人| 欧美一区二区三区四区夜夜大片 | 亚洲欧美久久久久一区二区三区| 伊人精品视频| 国产欧美一区二区精品秋霞影院 | 欧美午夜电影一区|