成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C++構造函數(shù)拋出異常的注意事項有哪些-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關C++構造函數(shù)拋出異常的注意事項有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

目前創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設計、尼河口網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

1.構造函數(shù)拋出異常導致內存泄漏

在C++構造函數(shù)中,既需要分配內存,又需要拋出異常時要特別注意防止內存泄露的情況發(fā)生。因為在構造函數(shù)中拋出異常,在概念上將被視為該對象沒有被成功構造,因此當前對象的析構函數(shù)就不會被調用。同時,由于構造函數(shù)本身也是一個函數(shù),在函數(shù)體內拋出異常將導致當前函數(shù)運行結束,并釋放已經(jīng)構造的成員對象,包括其基類的成員,即執(zhí)行直接基類和成員對象的析構函數(shù)??疾烊缦鲁绦?。

#include <iostream>
using namespace std;

class C
{
int m;
public:
C(){cout<<"in C constructor"<<endl;}
~C(){cout<<"in C destructor"<<endl;}
};

class A
{
public:
A(){cout<<"in A constructor"<<endl;}
~A(){cout<<"in A destructor"<<endl;}
};

class B:public A
{
public:
C c;
char* resource;

B()
{
resource=new char[100];
cout<<"in B constructor"<<endl;
throw -1;
}
~B()
{
cout<<"in B destructor"<<endl;
delete[] resource;
}
};

int main()
{
try
{
B b;
}
catch(int)
{
cout<<"catched"<<endl;
}
}

名稱欄目:C++構造函數(shù)拋出異常的注意事項有哪些-創(chuàng)新互聯(lián)
標題鏈接:http://jinyejixie.com/article0/csdooo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)域名注冊、企業(yè)建站、App設計、搜索引擎優(yōu)化服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計
大化| 茂名市| 文登市| 蒙阴县| 清原| 乌什县| 长武县| 沙河市| 林西县| 闸北区| 东乡族自治县| 宜宾市| 田林县| 洪洞县| 万盛区| 斗六市| 崇仁县| 新丰县| 馆陶县| 崇礼县| 松江区| 休宁县| 胶州市| 滕州市| 隆安县| 油尖旺区| 拜泉县| 杭锦后旗| 哈密市| 垫江县| 合川市| 大田县| 宝应县| 故城县| 和平区| 且末县| 三门峡市| 罗田县| 沁源县| 磴口县| 普格县|