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

linux&c++ R&D

programing is a pleasure!

How do you define a copy constructor or assignment operator for a class that contains a pointer to a (abstract) base class?

If the class "owns" the object pointed to by the (abstract) base class pointer, use the Virtual Constructor Idiom in the (abstract) base class. As usual with this idiom, we declare a pure virtual clone() method in the base class:

 class Shape {
 public:
   
...
   virtual Shape* clone() const = 0;   
// The Virtual (Copy) Constructor
   
...
 };

Then we implement this clone() method in each derived class. Here is the code for derived class Circle:

 class Circle : public Shape {
 public:
   
...
   virtual Circle* clone() const;
   
...
 };
 
 Circle* Circle::clone() const
 {
   return new Circle(*this);
 }

(Note: the return type in the derived class is intentionally different from the one in the base class.)

Here is the code for derived class Square:

 class Square : public Shape {
 public:
   
...
   virtual Square* clone() const;
   
...
 };
 Square* Square::clone() const
 {
   return new Square(*this);
 }

Now suppose that each Fred object "has-a" Shape object. Naturally the Fred object doesn't know whether the Shape is Circle or a Square or ... Fred's copy constructor and assignment operator will invoke Shape's clone() method to copy the object:

 class Fred {
 public:
   
// p must be a pointer returned by new; it must not be NULL
   Fred(Shape* p)
     : p_(p) { assert(p != NULL); }
  ~Fred()
     { delete p_; }
   Fred(const Fred& f)
     : p_(f.p_->clone()) { }
   Fred& operator= (const Fred& f)
     {
       if (this != &f) {              
// Check for self-assignment
         Shape* p2 = f.p_->clone();   
// Create the new one FIRST...
         delete p_;                   
// ...THEN delete the old one
         p_ = p2;
       }
       return *this;
     }
   
...
 private:
   Shape* p_;
 };

posted on 2007-05-15 13:48 丑石 閱讀(608) 評論(0)  編輯 收藏 引用 所屬分類: C++ problem and solution

My Links

Blog Stats

News

常用鏈接

留言簿(1)

隨筆分類(13)

隨筆檔案(17)

文章檔案(1)

相冊

收藏夾(1)

Friends' blog

useful sites

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产精品欧美一二99| 久热精品在线视频| 91久久久精品| 欧美成人黑人xx视频免费观看| 亚洲大片精品永久免费| 欧美成人精品在线播放| 欧美国产激情| 亚洲欧美成人一区二区三区| 亚洲一区二区三| 国产一二三精品| 卡一卡二国产精品| 欧美韩日一区二区三区| 亚洲免费影视| 久久精品青青大伊人av| 亚洲人成人一区二区在线观看| 亚洲人成网站777色婷婷| 欧美三区在线视频| 久久久久国产成人精品亚洲午夜| 久久综合九色九九| 亚洲一区区二区| 久久久综合网站| 一区二区毛片| 欧美在线观看视频一区二区| 亚洲人成精品久久久久| 亚洲一区二区在线视频| 黄色精品一区二区| 一本色道88久久加勒比精品 | 欧美视频在线观看 亚洲欧| 欧美一区二区三区四区在线观看| 久久久蜜桃精品| 午夜一区二区三区在线观看| 久久这里只有| 欧美一区二区三区在线免费观看| 久久午夜色播影院免费高清| 亚洲图片你懂的| 久久午夜电影| 欧美一区二区播放| 欧美成人精品| 久久综合给合久久狠狠狠97色69| 欧美日本国产| 欧美国产91| 韩国v欧美v日本v亚洲v| 99天天综合性| 亚洲精品一二| 久久亚洲影音av资源网| 欧美一区二区三区免费视| 欧美大秀在线观看| 免费观看亚洲视频大全| 国产午夜亚洲精品理论片色戒| 亚洲精品日韩欧美| 91久久综合亚洲鲁鲁五月天| 久久精品二区| 久久精品国产一区二区三区| 欧美午夜剧场| 99re6热只有精品免费观看| 亚洲人被黑人高潮完整版| 欧美自拍偷拍午夜视频| 欧美在线视频一区二区| 国产精品v欧美精品v日韩精品| 美女国产精品| 精品动漫3d一区二区三区| 欧美一级大片在线观看| 性18欧美另类| 国产欧美日韩另类一区| 亚洲欧美国产一区二区三区| 亚洲欧美日韩国产成人| 国产精品激情av在线播放| 亚洲精品免费在线| 亚洲人成在线观看网站高清| 免费看黄裸体一级大秀欧美| 欧美激情黄色片| 亚洲人成在线播放网站岛国| 欧美国产免费| 亚洲精品一区二区在线| 亚洲视频播放| 国产精品有限公司| 久久不射2019中文字幕| 噜噜噜噜噜久久久久久91| 亚洲电影免费观看高清完整版在线观看| 久久久www成人免费毛片麻豆| 美日韩免费视频| 亚洲精选在线观看| 欧美日韩精品免费在线观看视频| 亚洲一区美女视频在线观看免费| 欧美在线观看视频一区二区三区 | 亚洲国产99| 最新国产の精品合集bt伙计| 麻豆9191精品国产| 亚洲精品在线观| 欧美亚洲免费电影| 国内久久精品| 欧美国产日韩在线观看| 亚洲卡通欧美制服中文| 欧美一二区视频| 尤物精品国产第一福利三区 | 欧美成人免费一级人片100| 亚洲片在线观看| 性做久久久久久免费观看欧美| 国产一区自拍视频| 免费在线观看精品| 亚洲一区二区三区在线播放| 久久久久久久波多野高潮日日| 亚洲区一区二区三区| 国产精品theporn| 久久免费黄色| 亚洲视频一二| 欧美国产精品人人做人人爱| 亚洲欧美不卡| 亚洲精品日本| 国产一级一区二区| 欧美日韩综合一区| 久久麻豆一区二区| 亚洲自拍偷拍视频| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲欧洲日本国产| 久久久噜噜噜久久中文字免| 中文久久乱码一区二区| 伊伊综合在线| 国产区二精品视| 欧美视频在线观看 亚洲欧| 久久三级视频| 欧美在线免费视屏| 99精品黄色片免费大全| 女人天堂亚洲aⅴ在线观看| 亚洲一区中文字幕在线观看| 亚洲日本电影| 极品尤物一区二区三区| 国产九九视频一区二区三区| 欧美人体xx| 蜜桃精品久久久久久久免费影院| 西瓜成人精品人成网站| 夜夜夜久久久| 亚洲精品视频二区| 91久久午夜| 亚洲国产cao| 亚洲高清色综合| 亚洲电影自拍| 欧美激情一区在线观看| 美女网站在线免费欧美精品| 欧美亚洲一级| 欧美在线地址| 久久九九免费| 久久另类ts人妖一区二区| 欧美中文字幕精品| 欧美亚洲一区二区三区| 性欧美精品高清| 欧美一区二区三区播放老司机| 亚洲一区三区视频在线观看| 亚洲视频免费观看| 亚洲永久免费精品| 亚洲综合色网站| 先锋资源久久| 久久久一区二区| 美女精品在线| 亚洲国产美女精品久久久久∴| 欧美福利视频一区| 亚洲国产日韩一区二区| 亚洲精品中文字| 亚洲无线一线二线三线区别av| 亚洲私拍自拍| 欧美综合第一页| 欧美成人久久| 国产精品av免费在线观看| 国产精品区二区三区日本| 国产午夜精品理论片a级探花 | 国产精品美女久久久免费| 国产精品亚洲综合久久| 国产亚洲福利| 亚洲高清久久久| 亚洲视频在线播放| 欧美专区第一页| 欧美成人综合在线| 日韩性生活视频| 午夜精品一区二区三区电影天堂| 欧美主播一区二区三区| 欧美福利视频在线| 国产精品乱码一区二区三区| 伊大人香蕉综合8在线视| 99re热这里只有精品视频| 小黄鸭精品密入口导航| 欧美成人精品高清在线播放| 日韩亚洲视频| 久久精品亚洲一区二区三区浴池| 欧美高清不卡在线| 国产日产欧美精品| 日韩天堂av| 久久人人爽国产| 一区二区三区毛片| 久久精品亚洲热| 欧美偷拍另类| 亚洲国产精品电影在线观看| 亚洲欧美国产精品专区久久| 欧美国产高潮xxxx1819| 亚洲男人的天堂在线aⅴ视频| 美女黄毛**国产精品啪啪| 国产欧美日韩在线| 中日韩美女免费视频网址在线观看| 久久嫩草精品久久久精品| 99re8这里有精品热视频免费 | 欧美精品一区在线|