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

首頁 > 編程 > C++ > 正文

C++中抽象類是什么?和接口有啥區別

2020-02-24 14:37:02
字體:
來源:轉載
供稿:網友

C++中抽象類是什么?和接口有啥區別?抽象類(abstract class)和接口(interface)的概念是面向對象設計中常用的概念,也是比較容易混淆的概念.,在這里,我提出一種區分它們的思路,一起來進一步的了解下。

1. 如果一個類B在語法上繼承(extend)了類A, 那么在語義上類B是一個類A.
2. 如果一個類B在語法上實現了(implement)接口I, 那么類B遵從接口I制定的協議.

使用abstract class的根本原因在于, 人們希望通過這樣的方式, 表現不同層次的抽象.
而interface的本質是一套協議. 在程序設計的發展中, 人們又發現接口可以用來表示對行為的抽象, 不過, 這只是interface的一種用法不是其本質.

理論結合實際才是最好的學習方式, 不過在這里, 我只想舉一些我見到過關于接口使用的反面教材:

1. 在接口中包含數據成員. 這幾乎肯定是錯的, 因為協議是規范是標準, 不應該跟具體實現有任何牽連, 也不應該給具體實現造成任何負擔.
2. C++中 delete 掉一個接口. 例如:


class IInterface()
{
Public:
Virtual ~IInterface(){};

}

?

Class ClassImpl : public IInterface
{

}

Int main()
{
IInterface* pInterface = new ClassImpl();

delete pInterface;
}


從語法的角度和語言自身的角度來看, 這是可行的, 而且只要將接口的析構函數設置為virtual, 就能避免內存泄漏. 但我要說, 這不是語法和語言的問題, 而是從根本上就錯了. 因為接口是一套協議, 一套規范, 并不是實現. Delete 一個接口的代碼, 到底想要表達什么樣的語義? 如果一段代碼從語義上都說不通, 就不應該出現在程序中.
要在C++中表現接口的概念, 一種做法是這樣:

?

?


class IInterface
{
public:
virtual void DoSomething() = 0;
}

?

// 不應當有析構函數, 因為從語義上說, 接口是不能delete的.


如果要delete, 只能delete一個類的實例:

?

?


Class A
{
Public:
Virtual ~A();

?

Public:
Virtual void DoSomething() = 0;
}
Class B : public A
{

}
Int main()
{
A* pA = new B();

Delete pA;
}


我們可以這樣做, 因為pA對應的是一個實例, 我們可以在A這一層將其銷毀.
先舉個例子,方便大家理解,然后從例子中抽象概括出結理論。

比如,一家生產門的公司,需要先定義好門的模板,以便能快速生產出各種規格的門。
這里的模板通常會有兩類模板:抽象類模板和接口模板。

抽象類模板:這個模板里面應該包含所有門都應該具有的共同屬性(如,門的形狀和顏色等)和共同行為(如,開門和關門)。

接口模板:有些門可能需要具有報警和指紋識別等功能,但這些功能又不是所有門必須具有的,所以像這樣的行為應該放在單獨的接口中。

有了上面的兩類模板,以后生產門就很方便了:利用抽象類模板和包含了報警功能的接口模板就能生產具有報警功能的門了。同理,利用抽象類模板和包含了指紋識別功能的接口模板就能生產具有指紋識別功能的門了。

總之:抽象類用來抽象自然界一些具有相似性質和行為的對象。而接口用來抽象行為的標準和規范,用來告訴接口的實現者必要按照某種規范去完成某個功能。

這是我自己的看法,歡迎大家和我探討這個問題,更多精彩內容,盡在武林技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产福利在线视频| 国产精品白浆视频免费观看| 精品一区二区三区在线观看l| 国产香蕉视频在线看| 午夜视频在线看| 国产精品麻豆一区二区三区| 国产激情自拍| av中文在线| 中文字幕在线视频免费观看| 99视频资源网| av人人综合网| 国产精品一区二区三区高清在线| 中文字幕在线免费视频| av男人的天堂网| 日本动漫同人动漫在线观看| 丁香花高清在线观看完整版 | 欧美色第一页| √天堂中文在线| jizz国产| 伊人影院在线观看| 国产免费电影网站入口| 999精品网| 国产一区二区三区美女秒播| 在线国产一级| 天天操夜夜摸| 在线免费黄色毛片| 天堂资源在线中文| 天天干天天摸| 精品黄色免费中文电影在线播放| 麻豆福利在线观看| 在线观看av资源网| 国产激情网址| 国产精品扒开做爽爽爽的视频| а√天堂www在线а√天堂视频| 午夜不卡视频| 国产免费电影网站入口| 免费一区二区三区视频狠狠| 国产成在线观看免费视频| 国产美女一区视频| 欧美视频免费一区二区三区| 国产不卡一卡2卡三卡4卡5卡在线| 免费看的毛片| 青青草在线视频免费观看| 国产成免费视频| 国产高清av| 992tv在线观看在线播放| 国产一卡2卡3卡四卡网站| 国产女人在线观看| 精品资源在线看| 国产精品一卡二卡三卡| 国产麻豆视频| 国产精品二线| 四虎免费视频| 国产又色又爽又黄刺激在线视频| 开心丁香婷婷深爱五月| www在线观看播放免费视频日本| 亚洲字幕成人中文在线观看| 亚洲精品视频在线免费| 免费av不卡在线观看| 久热精品免费视频| 国产一级黄色电影| 精品伦理一区二区| 免费女人毛片视频| 国产小视频免费在线网址| 国产精品被窝福利一区 | 国产福利三区| 亚洲综合天堂网| 欧美日韩亚洲国内综合网| 黄色av网址在线免费观看| 久热av在线| 999国产在线视频| 福利视频在线看| 91黄色在线| 天堂资源最新在线| 日本视频一二三区中文字幕| 最新中文字幕av专区| 香蕉视频在线看| 国产秀色在线www免费观看| 99热免费在线| 国产精品秘入口| 久久精品无码一区二区日韩av| 国产网站在线免费观看| 日本高清不卡中文字幕| 国产成人久久精品77777| 亚洲国产aⅴ精品| 国产人成精品| 黄色在线视频观看网站| 99热免费在线观看| 国产网友自拍电影在线| 国产剧情在线一区| 高清色视频在线观看| 亚洲精品一区中文字幕电影| 国产黄色免费网站| 国产精品综合久久久久| а√天堂8资源在线官网| 亚洲尤物在线视频| 精品视频麻豆入口| 国产成人午夜| 91资源在线观看| 天天爱天天色| 尤物网站在线| 国产午夜在线| 国产激情自拍| 在线视频中文字幕| 亚洲视频精品在线观看| 精品视频vs精品视频| 精品免费视频一卡2卡三卡4卡不卡| 中文字幕在线观看播放| 国产呻吟对白刺激无套视频在线| 五月婷婷丁香激情| 国产导航在线| sese一区| 中文字幕第一页在线| 国产小黄视频| 999福利在线视频| a视频在线看| 国产理论电影在线| 精品国产白色丝袜高跟鞋| 99热免费在线| 老鸭窝av在线| 精品一区二区在线欧美| 亚洲成人福利| 国产秒拍福利视频露脸| 国产91在线视频蝌蚪| 青青久草在线| 中文字幕网站视频在线| av手机天堂| 国产调教视频在线观看| 亚洲欧美精选| 午夜国产在线| 久热免费视频| 中文字幕av在线播放| 最近免费中文字幕在线第一页 | av在线不卡播放| 国产免费av高清在线| ·天天天天操| 国产免费福利网站| www.操操操| 精品a在线观看| 国产91大片| 日本电影在线观看| 国产福利热线视频| 日本视频在线| 2020亚洲男人天堂| 国产一二三区在线观看| 青青九九免费视频在线| 国产成人亚洲欧美电影| 国内精品一区视频| 小说区乱图片区| 伊人免费在线| 精品一二三四| 国产黄色片大全| 国产一区二区三区美女秒播| 黄色国产在线| 丁香婷婷在线观看| 国产中文在线视频| 日韩欧美中文字幕不卡| 国产图片综合| 国产区视频在线| 国产网站免费看| **三级三级97片毛片| 国产69精品久久app免费版| 精品亚洲综合| 精品国产二区三区| 在线视频中文字幕第一页| 在线视频观看国产| 亚洲国产精品区| 日本不卡视频一区二区| 青草视频在线播放| 超碰在线观看免费版| 超碰在线97国产| 丁香花在线电影| 丁香视频免费观看| 国产小黄视频| 国产对白国语对白| 国产成+人+亚洲+欧美+综合| 96久久久久久| 美女免费视频黄| 五月综合网站| 在线观看免费黄色| 国产永久免费| 精品女厕厕露p撒尿| 亚洲欧美日韩成人网| 国产91大片| av在线不卡播放| 最好2018中文免费视频| 精品亚洲成a人片在线观看| 在线观看午夜av| 国产美女被遭强高潮免费网站| 国产一区二区三区美女秒播| 国产超碰在线观看| 免费网站看黄yyy222| 国产高清视频在线播放| 热99re久久精品精品免费| 天堂中文在线视频| 亚洲欧美精选| 国产精品欧美韩国日本久久| jizz一区二区三区| 精品一区二区在线欧美| 尤物视频在线观看|