国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C > 正文

構造函數定義為private或者protected的好處

2020-01-26 15:46:24
字體:
來源:轉載
供稿:網友

將構造函數,析構函數聲明為私有和保護的,那么對象如何創建?已經不能從外部調用構造函數了,但是對象必須被構造,應該如何解決,麻煩大家幫忙說明,關于構造,析構函數聲明為私有和保護時的用法??? 提出這個問題,說明你已經對c++有所思考了。

從語法上來講,一個函數被聲明為protected或者private,那么這個函數就不能從“外部”直接被調用了。
對于protected的函數,子類的“內部”的其他函數可以調用之。
而對于private的函數,只能被本類“內部”的其他函數說調用。

語法上就是這么規定的,你肯定也知道的咯。
那么為什么有時候將構造函數或者析構函數聲明為protected的或者private的?

通常使用的場景如下:
1。如果你不想讓外面的用戶直接構造一個類(假設這個類的名字為A)的對象,而希望用戶只能構造這個類A的子類,那你就可以將類A的構造函數/析構函數聲明為protected,而將類A的子類的構造函數/析構函數聲明為public。例如:

復制代碼 代碼如下:

class A
{ protected: A(){}
  public: ....
};
calss B : public A
{ public: B(){}
  ....
};

A a; // error
B b; // ok


2. 如果將構造函數/析構函數聲明為private,那只能這個類的“內部”的函數才能構造這個類的對象了。這里所說的“內部”不知道你是否能明白,下面舉個例子吧。
復制代碼 代碼如下:

class A
{
private:
    A(){  }
    ~A(){ }

public:
    void Instance()//類A的內部的一個函數
    {
        A a;
    }
};


上面的代碼是能通過編譯的。上面代碼里的Instance函數就是類A的內部的一個函數。Instance函數體里就構建了一個A的對象。

但是,這個Instance函數還是不能夠被外面調用的。為什么呢?

如果要調用Instance函數,必須有一個對象被構造出來。但是構造函數被聲明為private的了。外部不能直接構造一個對象出來。
A aObj; // 編譯通不過
aObj.Instance();
但是,如果Instance是一個static靜態函數的話,就可以不需要通過一個對象,而可以直接被調用。如下:

復制代碼 代碼如下:

class A
{
private:
    A():data(10){ cout << "A" << endl; }
    ~A(){ cout << "~A" << endl; }

    public:
    static A& Instance()
    {
        static A a;
        return a;
    }

    void Print()
    {
        cout << data << endl;
    }

private:
    int data;
};

A& ra = A::Instance();
ra.Print();


上面的代碼其實是設計模式singleton模式的一個簡單的C++代碼實現。

還有一個情況是:通常將拷貝構造函數和operator=(賦值操作符重載)聲明成private,但是沒有實現體。
這個的目的是禁止一個類的外部用戶對這個類的對象進行復制動作。
細節請看《effective C++》里面的條款27。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
在线观看中文字幕| 日本黄在线观看| www免费在线观看| 国产午夜精品一区理论片| av福利在线播放| 九九热在线视频免费观看| 99久热re在线精彩视频| 国产精品入口麻豆免费观看| ·天天天天操| 国产精品18久久久久久久久久| 国产永久av在线| 国产一二三区在线| 亚洲永久免费网站| 激情在线视频播放| 日本视频二区| eeuss影院在线观看| 国产专区在线播放| 99久久99久久免费精品小说| 碰草在线视频| av手机天堂| 国产亚av手机在线观看| 91麻豆精品国产91久久| 超碰免费在线播放| 精品女厕厕露p撒尿| 国产中文在线视频| 91欧美在线视频| 99视频免费| 国产午夜精品一区理论片| 国产黄色免费| 中文字幕在线第一页| 伊人国产在线看一| 国产福利视频在线| 国产视频中文字幕| 丁香花高清视频完整版在线观看| 一区二区免费播放| 国产精品区一区二| 国产乱xxⅹxx国语对白| 国产福利视频在线观看| xxx国产精品| 一二三四区在线观看| 中文字幕网在线| 国产在线你懂得| 久热中文字幕| 黄网站在线观看高清免费| 欧美高清xxxx性| 亚洲国产精品区| av中文天堂在线| 欧美日韩视频精品一区二区| 热99re久久精品这里都是免费| 在线免费看av| 四虎网站在线观看| jlzzjlzz欧美大全| www.超级碰| 黄色国产网站在线观看| 国产69久久| 国产欧美日本亚洲精品一4区| 国产乱xxⅹxx国语对白| 天堂中文在线视频| 国产一级在线| 2021av天天| 精品视频麻豆入口| 日韩黄色成人| 国产污污在线观看| 在线三级中文| 成人亚洲一区二区三区| 国产成人精品实拍在线| 亚洲一道本在线| 精品孕妇一区二区三区| 国产精品视频h| www.av在线播放| 国产一卡2卡3卡4卡网站免费| 国产成人久久精品77777| 香蕉视频在线看| 国产午夜三区视频在线| 亚洲激情丁香| 中文字幕第一页在线| 伊人色综合网| 国产精品视频一区麻豆| 青青久草在线| 在线观看精品一区二区三区| 导航福利在线| 欧美一级久久久久久久久大| 国产福利免费观看| 成年人在线观看| 青草av在线| av文字幕在线观看| 国产www网站| 最新超碰在线| 国产尤物视频在线| 日p在线观看| 精品国产一区二区三区不卡在线| 国产在线高清| 久精品在线观看| 四虎中文字幕| 欧美专区日韩| 久热免费在线视频| 久久五月精品中文字幕| 久久五月精品| 玖玖在线视频| 久草亚洲一区| 国产农村av| 国产精品一区二区三区视频网站| 青青草视频在线观看| 高潮白浆视频| √天堂8资源中文在线| 国产在线三区| 黄色毛片在线| 国产美女在线观看| 国产精品外围在线观看| 久久一本精品| 中文字幕在线免费视频| 国产图片综合| 制服丝袜中文字幕在线观看| 国产福利热线视频| 亚洲欧美自拍另类| 老鸭窝av在线| 国产青草视频在线观看视频| 69久久久久| 免费看的毛片| 国产区在线视频| 国产福利在线播放| 一级黄色av| 九九热在线视频免费观看| 五月婷婷在线观看| 国产高清一区二区三区视频| 亚洲视频手机在线观看| 黄色毛片在线观看| 2018中文字幕在线观看| 日韩亚洲一区中文字幕| 中文字幕第一页在线| 永久免费av片在线观看全网站| 精品无人乱码| 国产成人精品久久一区二区小说| 麻豆视频在线观看免费网站| 在线观看国产福利视频| 国产精品视频流白浆免费视频| 精品推荐蜜桃传媒| 高清欧美精品xxxxx在线看| 国产一级在线观看| eeuss影影院www在线播放| 黄色av网站在线| 在线中文资源天堂| 国产无遮挡又黄又爽免费网站| 免费a级毛片在线观看| 亚洲午夜久久久久中文字幕| 国产人成在线观看| 国产一卡2卡3卡4卡网站免费| 欧美日韩不卡中文字幕在线| 中文国产字幕在线观看| 最新中文字幕av专区| 影音先锋在线中文字幕| 国产精品毛片一区二区三区四区| 九九热在线播放| 六月天色婷婷| 男女午夜视频在线观看| eeuss影院在线| 在线播放av网站| 永久免费不卡在线观看黄网站| 国产精品久久久久一区二区国产| 国产在线你懂得| 国产日本视频| 亚洲精品自拍区在线观看| 国产二区在线播放| 国产鲁鲁视频在线观看特色| 免费影视观看网站入口| 亚洲wwwwww| 碰草在线视频| 99视频免费| 中文字幕高清av| 国产精品合集一区二区| 国产精品久久久久久福利| 国产三级在线免费观看| 国产精品久久一区二区三区不卡| 国产网红在线| 精品国产高清a毛片无毒不卡| 国产福利在线视频| 欧美黑人乱大交| 国产美女被草| 国产不卡精品一区二区三区| av福利在线播放| yjizz视频网站在线播放| 黄色av电影在线播放| 国产精品伦一区二区三区视频| 国产激情视频一区二区三区| 在线伊人免费视频| 久草电影在线| 91在线网站| 国产麻豆精品入口在线观看| 2019中文字幕在线视频| 超碰在线免费播放| 97中文字幕| 国产日本韩国在线播放| 日本a级黄色| 在线影视一区| 国产一卡2卡3卡免费网站| www.中文字幕久久久| 国产麻豆高清视频在线第一页 | 国产在线视频网站| 国产特黄在线| www在线视频|