亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么在類體系中將抽象類定義成接口

發布時間:2021-11-25 16:07:26 來源:億速云 閱讀:148 作者:iii 欄目:大數據

本篇內容主要講解“C++怎么在類體系中將抽象類定義成接口”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++怎么在類體系中將抽象類定義成接口”吧!

I.25: Prefer abstract classes as interfaces to class hierarchies(在類體系中將抽象類定義為接口會更好

譯者注:

  1. 抽象類:不能直接生成示例的基類。

  2. 接口:不包含數據成員的抽象類。

Reason(原因)

Abstract classes are more likely to be stable than base classes with state.

抽象類有很大的可能比包含狀態的基類更穩定。

譯者注:結合全文,這里的抽象類應該指接口。

Example, bad(反面示例)

You just knew that Shape would turn up somewhere :-)

你只知道Shape會在某處表示:-)

class Shape {  // bad: interface class loaded with datapublic:    Point center() const { return c; }    virtual void draw() const;    virtual void rotate(int);    // ...private:    Point c;    vector<Point> outline;    Color col;};

這將強迫每個派生類都要計算中心位置-哪怕是那些特殊且中心從未不用的圖形。類似的,也不是所有的圖形都有顏色,很多圖形最好不要包含一個有Points序列定義的輪廓線。發明抽象類就是為了鼓勵用戶寫出下面的類:

class Shape {    // better: Shape is a pure interfacepublic:    virtual Point center() const = 0;   // pure virtual functions    virtual void draw() const = 0;    virtual void rotate(int) = 0;    // ...    // ... no data members ...    // ...    virtual ~Shape() = default;};
Enforcement(實施建議)

(Simple) Warn if a pointer/reference to a class C is assigned to a pointer/reference to a base of C and the base class contains data members.

(簡單)如果指向類C的指針或引用被復制被C的基類類型的指針或引用,而且基類包含數據成員時,報警。

譯者注:也就是說,大師的意見是:基類基本上抽象類就不要有數據成員了。

到此,相信大家對“C++怎么在類體系中將抽象類定義成接口”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

澳门| 湛江市| 平谷区| 白沙| 香格里拉县| 双辽市| 平山县| 宜川县| 曲水县| 揭西县| 四子王旗| 库车县| 新营市| 桦川县| 宁武县| 长寿区| 敖汉旗| 双桥区| 霍林郭勒市| 浦县| 驻马店市| 子洲县| 九龙坡区| 定远县| 福海县| 英超| 土默特左旗| 淳安县| 乌审旗| 沽源县| 富平县| 贵港市| 无为县| 扎鲁特旗| 碌曲县| 礼泉县| 京山县| 阿拉尔市| 确山县| 大化| 长兴县|