日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

        c/c++

        c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充

        發(fā)布時(shí)間:2023/12/10 c/c++ 33 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

        在C++中,繼承是一個(gè)對(duì)象自動(dòng)獲取其父對(duì)象的所有屬性和行為的過程。通過繼承,您可以重用,擴(kuò)展或修改在其他類中定義的屬性和行為。通過繼承,可以實(shí)現(xiàn)函數(shù)重寫以及多態(tài)。

        在C++中,繼承另一個(gè)類的成員的類稱為派生類,其成員被繼承的類稱為基類。 派生類是基類的子類。

        繼承代表了 is a 關(guān)系。例如,哺乳動(dòng)物是動(dòng)物,狗是哺乳動(dòng)物,因此,狗是動(dòng)物,等等。

        C++最強(qiáng)大的功能之一就是派生類的使用。通過其類提供類和對(duì)象的更一般的屬性和行為,通過派生類來逐步特殊化、具體化,體現(xiàn)出一種層次化的關(guān)系。既能達(dá)到代碼重用,還可添加成員或重寫成員函數(shù)。繼承一般有三種形式1) 實(shí)現(xiàn)繼承:派生類使用基類的屬性和方法而無需額外編碼;2) 可視繼承:子窗體使用父窗體的外觀和實(shí)現(xiàn)代碼;3) 接口繼承:僅使用屬性和方法,實(shí)現(xiàn)滯后到子類實(shí)現(xiàn);

        如C++的輸入輸出流類就能會(huì)很地體現(xiàn)這種繼承和派生的層次關(guān)系:

        定義一個(gè)派生類,我們使用一個(gè)類派生列表來指定基類。類派生列表以一個(gè)或多個(gè)基類命名,形式如下:

        class derived-class: access-specifier base-class

        其中,訪問修飾符 access-specifier可以是 public、protected 或 private 其中的一個(gè),base-class 是之前定義過的某個(gè)類的名稱。如果未使用訪問修飾符 access-specifier,則默認(rèn)為 private。

        實(shí)例:

        #include using namespace std;// 基類class Shape{public:void setWidth(int w){width = w;}void setHeight(int h){height = h;}protected:int width;int height;};// 派生類class Rectangle: public Shape{public:int getArea(){return (width * height);}};int main(void){Rectangle Rect;Rect.setWidth(5);Rect.setHeight(7);// 輸出對(duì)象的面積cout << "Total area: " << Rect.getArea() << endl;system("pause");return 0;}//輸出:Total area: 35

        1 訪問控制和繼承

        派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函數(shù)訪問,則應(yīng)在基類中聲明為 private。

        我們可以根據(jù)訪問權(quán)限總結(jié)出不同的訪問類型,如下所示:

        2 派生類不能繼承的函數(shù)成員

        一個(gè)派生類繼承了所有的基類方法,但下列情況除外:

        • 基類的構(gòu)造函數(shù)、析構(gòu)函數(shù)和拷貝構(gòu)造函數(shù)。
        • 基類的重載運(yùn)算符。
        • 基類的友元函數(shù)。

        用派生的方法定義一個(gè)派生類時(shí),派生類對(duì)象中的基類部分必須在構(gòu)造函數(shù)的初始化列表中調(diào)用基類的構(gòu)造函數(shù)完成,如:

        #include

        #include

        //代碼清單12-11 派生類定義實(shí)例car派生taxi

        class car {

        char no[10];

        char owner[10];

        char type[20];

        public:

        car(char *s1, char *s2, char *s3)

        {

        strcpy(no, s1);

        strcpy(owner, s2);

        strcpy(type, s3);

        }

        void modifyNo(char *s) {strcpy(no, s); }

        void modifyOwner(char *s) {strcpy(owner, s); }

        const char *getNo() const { return no; }

        const char *getOwner() const {return owner; }

        const char *getType() const { return type; }

        };

        class taxi : public car {

        int seat;

        double price;

        public:

        taxi(char *s1, char *s2, char *s3, int s, double p):car(s1,s2,s3)

        {seat = s; price = p; }

        double operator() (int start, int end)

        { return price *(end-start); }

        int getSeat() const {return seat; }

        double getPrice() const { return price; }

        };

        int main()

        {

        car car1("滬A01100

        總結(jié)

        以上是生活随笔為你收集整理的c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。