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

chenglong7997

用C++設計一個不能被繼承的類

題目:用C++ 設計一個不能被繼承的類。

分析:這是Adobe 公司2007 年校園招聘的最新筆試題。這道題除了考察應聘者的C++ 基本功底外,還能考察反應能力,是一道很好的題目。
在Java 中定義了關鍵字final ,被final 修飾的類不能被繼承。但在C++ 中沒有final 這個關鍵字,要實現這個要求還是需要花費一些精力。
首先想到的是在C++ 中,子類的構造函數會自動調用父類的構造函數。同樣,子類的析構函數也會自動調用父類的析構函數。要想一個類不能被繼承,我們只要把它的構造函數和析構函數都定義為私有函數。那么當一個類試圖從它那繼承的時候,必然會由于試圖調用構造函數、析構函數而導致編譯錯誤。
可是這個類的構造函數和析構函數都是私有函數了,我們怎樣才能得到該類的實例呢?這難不倒我們,我們可以通過定義靜態來創建和釋放類的實例。基于這個思路,我們可以寫出如下的代碼:
///////////////////////////////////////////////////////////////////////
// Define a class which can't be derived from
///////////////////////////////////////////////////////////////////////
class FinalClass1
{
public :
      static FinalClass1GetInstance()
      {
            return new FinalClass1;
      }
 
      static void DeleteInstanceFinalClass1pInstance)
      {
            delete pInstance;
            pInstance = 0;
      }
 
private :
      FinalClass1() {}
      ~FinalClass1() {}
};
這個類是不能被繼承,但在總覺得它和一般的類有些不一樣,使用起來也有點不方便。比如,我們只能得到位于堆上的實例,而得不到位于棧上實例。
能不能實現一個和一般類除了不能被繼承之外其他用法都一樣的類呢?辦法總是有的,不過需要一些技巧。請看如下代碼:
///////////////////////////////////////////////////////////////////////
// Define a class which can't be derived from
///////////////////////////////////////////////////////////////////////
template <typename Tclass MakeFinal
{
      friend T;
 
private :
      MakeFinal() {}
      ~MakeFinal() {}
};
 
class FinalClass2 : virtual public MakeFinal<FinalClass2>
{
public :
      FinalClass2() {}
      ~FinalClass2() {}
};
這個類使用起來和一般的類沒有區別,可以在棧上、也可以在堆上創建實例。盡管類 MakeFinal <FinalClass2> 的構造函數和析構函數都是私有的,但由于類 FinalClass2 是它的友元函數,因此在 FinalClass2 中調用 MakeFinal <FinalClass2> 的構造函數和析構函數都不會造成編譯錯誤。
但當我們試圖從 FinalClass2 繼承一個類并創建它的實例時,卻不同通過編譯。
class Try : public FinalClass2
{
public :
      Try() {}
      ~Try() {}
};
 
Try temp;
由于類 FinalClass2 是從類 MakeFinal <FinalClass2> 虛繼承過來的,在調用 Try 的構造函數的時候,會直接跳過 FinalClass2 而直接調用 MakeFinal<FinalClass2> 的構造函數。非常遺憾的是, Try 不是 MakeFinal <FinalClass2> 的友元,因此不能調用其私有的構造函數。
基于上面的分析,試圖從 FinalClass2 繼承的類,一旦實例化,都會導致編譯錯誤,因此是 FinalClass2 不能被繼承。這就滿足了我們設計要求。

posted on 2012-03-26 08:33 Snape 閱讀(216) 評論(0)  編輯 收藏 引用 所屬分類: C++ 轉載

導航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章分類

文章檔案

my

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品扒开腿做爽爽爽视频 | 亚洲一区精品电影| 91久久精品美女高潮| 久久av最新网址| 久久久国产精品亚洲一区| 久久精品国产免费| 欧美成人精品激情在线观看| 亚洲高清资源| 在线亚洲精品| 久久国产福利| 欧美国产日韩在线观看| 欧美日韩精品是欧美日韩精品| 欧美体内she精视频在线观看| 国产精品一级在线| 亚洲国产精品久久| 一区二区三区.www| 欧美一区2区三区4区公司二百 | 亚洲破处大片| 亚洲欧美日韩成人| 欧美成人69av| 亚洲一卡久久| 免费在线视频一区| 国产精品网红福利| 亚洲黄色在线观看| 午夜影视日本亚洲欧洲精品| 欧美风情在线观看| 亚洲资源av| 欧美精品videossex性护士| 国产精品欧美风情| 亚洲精品美女在线| 久久视频一区| 亚洲女人天堂av| 欧美日韩视频在线| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲专区在线| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲一二三区在线| 欧美巨乳在线观看| 亚洲国产精品一区二区三区| 午夜欧美大片免费观看| 亚洲日本va在线观看| 久久亚洲欧美| 激情91久久| 久久成人精品无人区| 一区二区精品在线| 欧美日韩国产黄| 一区二区在线免费观看| 韩日精品视频| 欧美在线视频一区二区三区| 日韩视频永久免费观看| 欧美成人免费播放| 亚洲高清在线精品| 欧美mv日韩mv亚洲| 久久亚洲欧洲| 亚洲激情在线观看| 欧美成人蜜桃| 久久亚洲精品一区二区| 在线免费高清一区二区三区| 久久精品综合网| 欧美一区二区三区四区在线| 国产乱码精品一区二区三区不卡| 亚洲午夜高清视频| 日韩视频在线一区二区| 欧美日韩美女在线观看| 一本一本久久a久久精品综合妖精| 亚洲第一福利视频| 欧美国产91| 亚洲午夜羞羞片| 亚洲在线国产日韩欧美| 国产亚洲va综合人人澡精品| 久久这里有精品15一区二区三区| 久久国产精品亚洲va麻豆| 精品二区视频| 亚洲国产欧美另类丝袜| 欧美经典一区二区| 亚洲一区二区三区四区视频| 亚洲在线免费| 亚洲国产成人精品女人久久久| 欧美黑人一区二区三区| 欧美日韩精品免费在线观看视频| 亚洲主播在线观看| 久久精品中文| 一本色道久久88亚洲综合88| 亚洲午夜激情| 亚洲第一毛片| 一区二区三区日韩欧美| 国产日韩亚洲欧美精品| 亚洲电影在线免费观看| 欧美日韩免费观看一区| 久久久精品国产免大香伊| 欧美成人免费观看| 校园激情久久| 欧美大片免费久久精品三p | 欧美激情免费观看| 亚洲免费一区二区| 久久久久综合网| 亚洲无限av看| 久久夜色精品国产噜噜av| 亚洲手机在线| 久久美女性网| 欧美亚洲一级| 欧美精品久久久久久久免费观看| 校园春色国产精品| 国产日本欧美视频| 久久国产福利| 欧美精品啪啪| 老牛影视一区二区三区| 欧美午夜一区二区福利视频| 欧美成年人网站| 国产亚洲免费的视频看| 亚洲狼人精品一区二区三区| 国产一区二区精品丝袜| 99国产精品一区| 亚洲国产精品成人精品| 欧美一级日韩一级| 亚洲影视在线| 欧美日韩成人免费| 欧美激情精品久久久久久免费印度| 国产精品一区免费在线观看| 99精品国产一区二区青青牛奶| 亚洲黄色成人网| 久久人人九九| 榴莲视频成人在线观看| 国产日韩精品一区二区| 亚洲一本视频| 欧美一区二区日韩一区二区| 欧美视频不卡| 日韩视频精品| 亚洲无限乱码一二三四麻| 欧美日韩成人一区| 亚洲精品综合精品自拍| 日韩亚洲国产精品| 欧美精品不卡| 亚洲九九精品| 亚洲小视频在线观看| 欧美三级午夜理伦三级中文幕| 亚洲六月丁香色婷婷综合久久| 亚洲精品系列| 欧美日韩精品欧美日韩精品| 99精品国产一区二区青青牛奶| 一本色道久久综合亚洲精品不| 欧美精品亚洲精品| 日韩一级精品| 校园春色国产精品| 狠狠色噜噜狠狠色综合久| 久久人人爽人人爽| 亚洲精品美女免费| 亚洲影视九九影院在线观看| 国产精品一区二区久久久久| 欧美伊人久久大香线蕉综合69| 久久婷婷国产综合精品青草| 玉米视频成人免费看| 欧美成人午夜剧场免费观看| 亚洲老司机av| 久久久久国产精品厨房| 亚洲国产老妈| 国产精品chinese| 欧美与黑人午夜性猛交久久久| 免费在线欧美视频| 日韩一区二区精品| 国产精品美女www爽爽爽视频 | 蜜臀久久99精品久久久画质超高清 | 夜夜嗨av一区二区三区四区| 性8sex亚洲区入口| 在线免费观看日本欧美| 欧美日韩精品高清| 久久久7777| 一个色综合导航| 久热精品在线| 欧美日本一区二区三区 | 狠狠久久亚洲欧美专区| 久久久久青草大香线综合精品| 欧美高清在线视频| 亚洲线精品一区二区三区八戒| 国产日韩欧美制服另类| 欧美好吊妞视频| 性欧美大战久久久久久久免费观看 | 最新国产成人av网站网址麻豆| 欧美视频一区二区三区| 久久精品三级| 在线一区亚洲| 欧美激情一区二区三区在线| 羞羞视频在线观看欧美| 亚洲欧洲在线一区| 国语自产精品视频在线看抢先版结局| 欧美劲爆第一页| 久久久青草青青国产亚洲免观| 中文亚洲欧美| 亚洲片区在线| 免费看黄裸体一级大秀欧美| 午夜精品亚洲| 在线视频免费在线观看一区二区| 极品av少妇一区二区| 国产精品久久久久久久电影| 欧美1区视频| 久久精品亚洲精品| 亚洲欧美日韩一区二区| 夜夜精品视频一区二区| 亚洲国产精品高清久久久| 玖玖视频精品|