国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

北京微網(wǎng)站建設(shè)設(shè)計(jì)服務(wù)公司東莞網(wǎng)絡(luò)公司網(wǎng)絡(luò)推廣

北京微網(wǎng)站建設(shè)設(shè)計(jì)服務(wù)公司,東莞網(wǎng)絡(luò)公司網(wǎng)絡(luò)推廣,有沒有專業(yè)做二維碼連接網(wǎng)站在,怎樣在手機(jī)上運(yùn)行wordpress在C中,可以將虛函數(shù)聲明為純虛函數(shù),語法格式為: virtual 返回值類型 函數(shù)名 (函數(shù)參數(shù)) 0; 純虛函數(shù)沒有函數(shù)體,只有函數(shù)聲明,在虛函數(shù)聲明的結(jié)尾加上0,表明此函數(shù)為純虛函數(shù)。 最后的0并不表示函數(shù)返回…

在C++中,可以將虛函數(shù)聲明為純虛函數(shù),語法格式為:

virtual 返回值類型 函數(shù)名 (函數(shù)參數(shù)) = 0;

純虛函數(shù)沒有函數(shù)體,只有函數(shù)聲明,在虛函數(shù)聲明的結(jié)尾加上=0,表明此函數(shù)為純虛函數(shù)。

最后的=0并不表示函數(shù)返回值為0,它只起形式上的作用,告訴編譯系統(tǒng)“這是純虛函數(shù)”。

包含純虛函數(shù)的類稱為抽象類(Abstract Class)。之所以說它抽象,是因?yàn)樗鼰o法實(shí)例化,也就是無法創(chuàng)建對象。原因很明顯,純虛函數(shù)沒有函數(shù)體,不是完整的函數(shù),無法調(diào)用,也無法為其分配內(nèi)存空間。

抽象類通常是作為基類,讓派生類去實(shí)現(xiàn)純虛函數(shù)。派生類必須實(shí)現(xiàn)純虛函數(shù)才能被實(shí)例化。

純虛函數(shù)使用舉例:


?

?
#include <iostream>using namespace std;//線class Line{public:Line(float len);virtual float area() = 0;virtual float volume() = 0;protected:float m_len;};Line::Line(float len): m_len(len){ }//矩形class Rec: public Line{public:Rec(float len, float width);float area();protected:float m_width;};Rec::Rec(float len, float width): Line(len), m_width(width){ }float Rec::area(){ return m_len * m_width; }//長方體class Cuboid: public Rec{public:Cuboid(float len, float width, float height);float area();float volume();protected:float m_height;};Cuboid::Cuboid(float len, float width, float height): Rec(len, width), m_height(height){ }float Cuboid::area(){ return 2 * ( m_len*m_width + m_len*m_height + m_width*m_height); }float Cuboid::volume(){ return m_len * m_width * m_height; }//正方體class Cube: public Cuboid{public:Cube(float len);float area();float volume();};Cube::Cube(float len): Cuboid(len, len, len){ }float Cube::area(){ return 6 * m_len * m_len; }float Cube::volume(){ return m_len * m_len * m_len; }int main(){Line *p = new Cuboid(10, 20, 30);cout<<"The area of Cuboid is "<<p->area()<<endl;cout<<"The volume of Cuboid is "<<p->volume()<<endl;p = new Cube(15);cout<<"The area of Cube is "<<p->area()<<endl;cout<<"The volume of Cube is "<<p->volume()<<endl;return 0;}?

運(yùn)行結(jié)果: The area of Cuboid is 2200 The volume of Cuboid is 6000 The area of Cube is 1350 The volume of Cube is 3375

本例中定義了四個(gè)類,它們的繼承關(guān)系為:Line --> Rec --> Cuboid --> Cube。

Line 是一個(gè)抽象類,也是最頂層的基類,在 Line 類中定義了兩個(gè)純虛函數(shù) area() 和 volume()。

在 Rec 類中,實(shí)現(xiàn)了 area() 函數(shù);所謂實(shí)現(xiàn),就是定義了純虛函數(shù)的函數(shù)體。但這時(shí) Rec 仍不能被實(shí)例化,因?yàn)樗鼪]有實(shí)現(xiàn)繼承來的 volume() 函數(shù),volume() 仍然是純虛函數(shù),所以 Rec 也仍然是抽象類。

直到 Cuboid 類,才實(shí)現(xiàn)了 volume() 函數(shù),才是一個(gè)完整的類,才可以被實(shí)例化。

可以發(fā)現(xiàn),Line 類表示“線”,沒有面積和體積,但它仍然定義了 area() 和 volume() 兩個(gè)純虛函數(shù)。這樣的用意很明顯:Line 類不需要被實(shí)例化,但是它為派生類提供了“約束條件”,派生類必須要實(shí)現(xiàn)這兩個(gè)函數(shù),完成計(jì)算面積和體積的功能,否則就不能實(shí)例化。

在實(shí)際開發(fā)中,你可以定義一個(gè)抽象基類,只完成部分功能,未完成的功能交給派生類去實(shí)現(xiàn)(誰派生誰實(shí)現(xiàn))。這部分未完成的功能,往往是基類不需要的,或者在基類中無法實(shí)現(xiàn)的。雖然抽象基類沒有完成,但是卻強(qiáng)制要求派生類完成,這就是抽象基類的“霸王條款”。

抽象基類除了約束派生類的功能,還可以實(shí)現(xiàn)多態(tài)。請注意第 51 行代碼,指針p 的類型是 Line,但是它卻可以訪問派生類中的 area() 和 volume() 函數(shù),正是由于在 Line 類中將這兩個(gè)函數(shù)定義為純虛函數(shù);如果不這樣做,51 行后面的代碼都是錯(cuò)誤的。我想,這或許才是C++提供純虛函數(shù)的主要目的。

關(guān)于純虛函數(shù)的幾點(diǎn)說明

1) 一個(gè)純虛函數(shù)就可以使類成為抽象基類,但是抽象基類中除了包含純虛函數(shù)外,還可以包含其它的成員函數(shù)(虛函數(shù)或普通函數(shù))和成員變量。

2) 只有類中的虛函數(shù)才能被聲明為純虛函數(shù),普通成員函數(shù)和頂層函數(shù)均不能聲明為純虛函數(shù)。如下例所示:

 
//頂層函數(shù)不能被聲明為純虛函數(shù)void fun() = 0; //compile errorclass base{public ://普通成員函數(shù)不能被聲明為純虛函數(shù)void display() = 0; //compile error};

http://m.aloenet.com.cn/news/36286.html

相關(guān)文章:

  • 建設(shè)銀行網(wǎng)站首頁口關(guān)鍵詞優(yōu)化方法有什么步驟
  • 網(wǎng)站建設(shè)需要會(huì)什么軟件有哪些內(nèi)容seo網(wǎng)站推廣工作內(nèi)容
  • 免費(fèi)h5網(wǎng)站模版谷歌seo服務(wù)
  • 瑞安做網(wǎng)站百度云盤官網(wǎng)登錄入口
  • 成都建設(shè)工程交易中心網(wǎng)站深圳seo招聘
  • 扁平化企業(yè)網(wǎng)站媒體發(fā)布平臺(tái)
  • 廈門網(wǎng)站制作費(fèi)用怎么搭建屬于自己的網(wǎng)站
  • 服裝購物網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷組織的概念
  • 如何制作一個(gè)官網(wǎng)sem優(yōu)化軟件選哪家
  • 開一個(gè)網(wǎng)站建設(shè)公司外鏈工具xg
  • 怎么給公司做微網(wǎng)站軟文關(guān)鍵詞排名推廣
  • 石家莊新聞網(wǎng)seo推廣服務(wù)哪家好
  • 站長工具seo綜合查詢排名怎么做關(guān)鍵詞排名靠前
  • 香港vps可看netflix東營seo網(wǎng)站推廣
  • 做電子商務(wù)系統(tǒng)網(wǎng)站建設(shè)怎么推廣產(chǎn)品最有效
  • 如何在百度上做網(wǎng)站品牌策劃書
  • 福州交通建設(shè)集團(tuán)官方網(wǎng)站軟文營銷寫作技巧
  • 建設(shè)工程施工合同條例湖北搜索引擎優(yōu)化
  • 織夢映像網(wǎng)絡(luò)推廣seo怎么弄
  • 企業(yè) 網(wǎng)站 程序愛站網(wǎng)關(guān)鍵詞查詢
  • 如何用vps做網(wǎng)站中央新聞
  • 網(wǎng)站如何制作浙江技能培訓(xùn)班
  • 做電商的批發(fā)網(wǎng)站可以直接進(jìn)入的輿情網(wǎng)站
  • 扶貧基金會(huì)網(wǎng)站建設(shè)是哪家公司班級優(yōu)化大師官方網(wǎng)站
  • 中國設(shè)計(jì)聯(lián)盟官網(wǎng)短視頻入口seo
  • 網(wǎng)站網(wǎng)頁設(shè)計(jì)內(nèi)容百度網(wǎng)盤客服在線咨詢
  • 做網(wǎng)站橫幅用什么軟件好河南網(wǎng)站關(guān)鍵詞優(yōu)化
  • 深圳網(wǎng)站營銷公司談?wù)勀銓ヂ?lián)網(wǎng)營銷的認(rèn)識(shí)
  • 如何幫助網(wǎng)站吸引流量會(huì)計(jì)培訓(xùn)班一般多少錢
  • 有口碑的app制作武漢seo人才