国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C++學(xué)習(xí)】第六章多態(tài)與虛函數(shù)案例實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了【C++學(xué)習(xí)】第六章多態(tài)與虛函數(shù)案例實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

#include<iostream>
using namespace std;
class Shape{
    public:
    virtual float area() const {return 0.0;}
    virtual float volume() const {return 0.0;}
    virtual void shapeName() const = 0;
};

class Point:public Shape{
    public:
    Point(float=0, float=0);
    void setPoint(float, float);
    float getX() const{return x;}
    float getY() const{return y;}
    virtual void shapeName() const {
        cout << "Point:";
    }
    friend ostream & operator << (ostream &, const Point &);
    protected:
    float x,y;
};

class Circle:public Point{
    public:
    Circle(float x=0, float y=0,float r=0);
    void setRedius(float);
    float getR() const{return radius;}
    
    virtual void shapeName() const {
        cout << "Circle:";
    }
    float area() const;
    friend ostream & operator << (ostream &, const Circle &);
    protected:
    float radius;
};

class Cylinder:public Circle{
    public:
    Cylinder(float x=0, float y=0,float r=0,float h=0);
    void setHeight(float);
    float getHeight() const{return height;}
    
    virtual void shapeName() const {
        cout << "Cylinder:";
    }
    float area() const;
    float volume() const;
    friend ostream & operator << (ostream &, const Cylinder &);
    protected:
    float height;
};
Point::Point(float a, float b){
    x = a;
    y = b;
}
void Point::setPoint(float a, float b){
    x = a;
    y = b;
}
ostream & operator << (ostream & output, const Point &p){
    output <<"[p.x="<<p.x << ",p.y" << p.y <<"]";
    return output;
}

ostream & operator << (ostream & output, const Circle &c){
    output <<"[c.x="<<c.x << ",c.y" << c.y <<  ",c.redius"<< c.radius<<"]";
    return output;
}
Circle::Circle(float a, float b,float c):Point(a,b),radius(c){}
void Circle::setRedius(float r){
    radius = r;
}
float Circle::area() const {
    return 3.14 * radius * radius;
}

Cylinder::Cylinder(float a, float b,float c, float h):Circle(a,b,c),height(h){}
float Cylinder::area() const {
    return 3.14 * radius * radius + 2*3.14*radius*height;
}

float Cylinder::volume() const {
    return 3.14 * radius * radius *height;
}
ostream & operator << (ostream & output, const Cylinder &cy){
    output <<"[cy.x="<<cy.x << ",cy.y" << cy.y <<  ",cy.redius"<< cy.radius<< ",cy.height" <<cy.height<<"]";
    return output;
}
int main(){
    Point point(3.2, 4.5);
    Circle circle(2.4,12,18);
    Cylinder cylinder(1,2,3,4);
    point.shapeName();
    cout << point << endl;
    circle.shapeName();
    cout << circle << endl;
    cylinder.shapeName();
    cout << cylinder << endl;
    Shape *pt;
    pt = &point;
    pt->shapeName();
    cout << "x=" << point.getX() <<",y=" << point.getY() << "\n area=" << pt->area() <<"\n volumn="<<pt->volume() << "\n\n";
    pt = &circle;
    pt->shapeName();
    cout << "x=" << circle.getX() <<",y=" << circle.getY() << ",r=" << circle.getR() <<"\n area=" << pt->area() <<"\n volumn="<<pt->volume() << "\n\n";

    pt = &cylinder;
    pt->shapeName();
    cout << "x=" << cylinder.getX() <<",y=" << cylinder.getY() << ",r=" << cylinder.getR() <<"\n area=" << pt->area() <<"\n volumn="<<pt->volume() << "\n\n";
}

虛函數(shù)的作用就是為了實(shí)現(xiàn)多態(tài),和php的延時(shí)綁定是一樣的。
函數(shù)重載是靜態(tài)的,在橫向上的功能, 虛函數(shù)是類繼承上的功能,是動(dòng)態(tài)的。文章來源地址http://www.zghlxwxcb.cn/news/detail-708241.html

到了這里,關(guān)于【C++學(xué)習(xí)】第六章多態(tài)與虛函數(shù)案例實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【JavaWeb后端開發(fā)-第六章(1)】SpringBootWeb案例

    【JavaWeb后端開發(fā)-第六章(1)】SpringBootWeb案例

    ???? 前面我們已經(jīng)講解了Web前端開發(fā)的基礎(chǔ)知識(shí),也講解了Web后端開發(fā)的基礎(chǔ)(HTTP協(xié)議、請(qǐng)求響應(yīng)),并且也講解了數(shù)據(jù)庫MySQL,以及通過Mybatis框架如何來完成數(shù)據(jù)庫的基本操作。 那接下來,我們就通過一個(gè)案例,來將前端開發(fā)、后端開發(fā)、數(shù)據(jù)庫整合起來。 而這個(gè)案例

    2024年02月02日
    瀏覽(19)
  • 第六章 矩陣函數(shù)

    第六章 矩陣函數(shù)

    就是 f ( x ) 變成了 f ( A ) 就是 f(x) 變成了 f(A) 就是 f ( x ) 變成了 f ( A ) 難點(diǎn)在于 A k A^k A k 不好算。 解決方案是利用 J o r d a n Jordan J or d an 標(biāo)準(zhǔn)型來做。 f ( A ) = P d i a g ( f ( J 1 ) , f ( J 2 ) , … , f ( J r ) ) P ? 1 Large f(A) = Pdiag(f(J_1),f(J_2),dots,f(J_r))P^{-1} f ( A ) = P d ia g ( f ( J 1 ?

    2024年02月04日
    瀏覽(22)
  • 第六章 Python函數(shù)

    第六章 Python函數(shù)

    系列文章目錄 第一章 Python 基礎(chǔ)知識(shí) 第二章 python 字符串處理 第三章 python 數(shù)據(jù)類型 第四章 python 運(yùn)算符與流程控制 第五章 python 文件操作 第六章 python 函數(shù) 第七章 python 常用內(nèi)建函數(shù) 第八章 python 類(面向?qū)ο缶幊? 第九章 python 異常處理 第十章 python 自定義模塊及導(dǎo)入方法

    2024年02月06日
    瀏覽(19)
  • 【JavaWeb后端開發(fā)-第六章(3)】SpringBootWeb案例—登錄認(rèn)證

    【JavaWeb后端開發(fā)-第六章(3)】SpringBootWeb案例—登錄認(rèn)證

    ????在前面的章節(jié)中,我們已經(jīng)實(shí)現(xiàn)了 部門管理 、 員工管理 的基本功能,但是大家會(huì)發(fā)現(xiàn),我們并沒有登錄,就直接訪問到了Tlias智能學(xué)習(xí)輔助系統(tǒng)的后臺(tái)。 這是不安全的,所以我們今天的主題就是 登錄認(rèn)證 。 最終我們要實(shí)現(xiàn)的效果就是用戶必須登錄之后,才可以訪

    2024年01月19日
    瀏覽(19)
  • 大數(shù)據(jù)之Spark案例實(shí)操完整使用(第六章)

    大數(shù)據(jù)之Spark案例實(shí)操完整使用(第六章)

    上面的數(shù)據(jù)圖是從數(shù)據(jù)文件中截取的一部分內(nèi)容,表示為電商網(wǎng)站的用戶行為數(shù)據(jù),主要包含用戶的 4 種行為:搜索,點(diǎn)擊,下單,支付。數(shù)據(jù)規(guī)則如下: ? 數(shù)據(jù)文件中每行數(shù)據(jù)采用下劃線分隔數(shù)據(jù) ? 每一行數(shù)據(jù)表示用戶的一次行為,這個(gè)行為只能是 4 種行為的一種 ? 如

    2024年02月11日
    瀏覽(13)
  • python筆記:第六章函數(shù)&方法

    由系統(tǒng)提供,直接拿來用或是導(dǎo)入模塊后使用 函數(shù)是結(jié)構(gòu)化編程的核心 使用 def 來定義函數(shù) 為函數(shù)添加文檔字符串 如果不自定義返回值,則無返回值 return 用明確的變量組來接受函數(shù)輸出值,便于后期查看(序列解包),不用元組 標(biāo)明函數(shù)的返回值 注意:這

    2024年02月13日
    瀏覽(32)
  • 【JavaWeb后端開發(fā)-第六章(4)】SpringBootWeb案例—事務(wù)&AOP

    【JavaWeb后端開發(fā)-第六章(4)】SpringBootWeb案例—事務(wù)&AOP

    ????在數(shù)據(jù)庫階段我們已學(xué)習(xí)過事務(wù)了,我們講到: ???? 事務(wù) 是一組操作的集合,它是一個(gè)不可分割的工作單位。事務(wù)會(huì)把所有的操作作為一個(gè)整體,一起向數(shù)據(jù)庫提交或者是撤銷操作請(qǐng)求。所以這組操作要么同時(shí)成功,要么同時(shí)失敗。 ????怎么樣來控制這組

    2024年01月19日
    瀏覽(22)
  • 《Python程序設(shè)計(jì)》 第六章 函數(shù)+編程題解

    目錄 6-1 使用函數(shù)求特殊a串?dāng)?shù)列和 6-2 使用函數(shù)求素?cái)?shù)和 6-3 使用函數(shù)統(tǒng)計(jì)指定數(shù)字的個(gè)數(shù) 6-4 使用函數(shù)輸出指定范圍內(nèi)Fibonacci數(shù)的個(gè)數(shù)? 6-5 使用函數(shù)求余弦函數(shù)的近似值 6-6 縮寫詞 7-1 輸入列表,求列表元素和(eval輸入應(yīng)用) 7-2 一幫一 7-3 驗(yàn)證“哥德巴赫猜想” 7-4 列表或元組

    2024年02月07日
    瀏覽(55)
  • <c++>虛函數(shù)與多態(tài) | 虛函數(shù)與純虛函數(shù) | 多態(tài)的實(shí)現(xiàn)原理 | 虛析構(gòu)函數(shù)

    <c++>虛函數(shù)與多態(tài) | 虛函數(shù)與純虛函數(shù) | 多態(tài)的實(shí)現(xiàn)原理 | 虛析構(gòu)函數(shù)

    ?? 個(gè)人簡介:CSDN「 博客新星 」TOP 10 , C/C++ 領(lǐng)域新星創(chuàng)作者 ?? 作 ?? 者: 錫蘭_CC ?? ?? 專 ?? 欄: 從零開始的 c++ 之旅 ?? 若有幫助,還請(qǐng) 關(guān)注?點(diǎn)贊?收藏 ,不行的話我再努努力?????? 在上一篇文章中,我們介紹了 c++ 中類與對(duì)象的繼承,繼承可以根據(jù)一個(gè)或

    2023年04月18日
    瀏覽(26)
  • 第六章(7):Python中的函數(shù)—lambda表達(dá)式

    是一種匿名函數(shù)的定義方式,它可以替代函數(shù)定義的方式,使代碼更加簡潔和易讀。Lambda表達(dá)式的語法形式為:lambda 參數(shù)列表: 表達(dá)式,其中參數(shù)列表和表達(dá)式都是可選的,但是在大多數(shù)情況下都需要用到它們。Lambda表達(dá)式通常被用在需要傳遞函數(shù)對(duì)象作為參數(shù)的函數(shù)中,也

    2024年02月08日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包