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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++入门经典-例8.1-类的继承

發(fā)布時(shí)間:2023/11/29 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++入门经典-例8.1-类的继承 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1:繼承是面向?qū)ο蟮闹饕卣?#xff08;此外還有封裝和多態(tài))之一,它使得一個(gè)類可以從現(xiàn)有類中派生,而不必重新定義一個(gè)新類。繼承的實(shí)質(zhì)就是用已有的數(shù)據(jù)類型創(chuàng)建新的數(shù)據(jù)類型,并保留已有數(shù)據(jù)類型的特點(diǎn),以舊類為基礎(chǔ)創(chuàng)建新類,新類包含了舊類的數(shù)據(jù)成員和成員函數(shù),并且可以在新類中添加新的數(shù)據(jù)成員和成員函數(shù)。舊類被稱為基類或父類,新類被稱為派生類或子類。

2:類的繼承形式如下:

class 派生類名稱標(biāo)識(shí)符:[繼承方式] 基類名稱標(biāo)識(shí)符

{

? ? [訪問控制修飾符:]

? ? [ 成員聲明列表]

}

? ? 繼承方式有3中派生類型,分別為共有型(public)、保護(hù)型(protected)和私有型(privated),訪問控制修飾符也是public、protected、private三種類型,成員聲明列表中包含類的成員變量及成員函數(shù),是派生類新增的成員。“:”是一個(gè)運(yùn)算符,表示基類和派生類之間的繼承關(guān)系。

3:一個(gè)小例子。定義一個(gè)員工類,它包含員工ID、員工姓名、所屬部門等信息。

class CEmployee//定義員工類

{

public:

? ? int m_ID;//定義員工ID

? ? char m_Name[128];//定義員工姓名

? ? char m_Depart[128];//定義所屬部門

}

? ? 定義一個(gè)操作員類,通常操作員屬于公司的員工,它包含員工ID、員工姓名、所屬部門等信息,此外還包含密碼信息、登錄方法等。

class COperator :public CEmployee//定義一個(gè)操作員類,從CEmployee類派生而來

{

public:

? ? char m_Password[128];//定義密碼

? ? bool Login(); ?

}

? ? 操作員類是從員工類派生的一個(gè)新類,新類中增加密碼信息、登錄方法等,員工ID、員工姓名等信息直接從員工類中繼承得到。

3:例子代碼如下:

// 8.1.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。 // #include "stdafx.h" #include <iostream> using namespace std; class CEmployee //定義員工類 { public:int m_ID; //定義員工IDchar m_Name[128]; //定義員工姓名char m_Depart[128]; //定義所屬部門CEmployee() //定義默認(rèn)構(gòu)造函數(shù) {memset(m_Name,0,128); //初始化m_Name//注意這種用法,可以隨意設(shè)置名字和部門memset(m_Depart,0,128); //初始化m_Depart }void OutputName() //定義共有成員函數(shù) {cout <<"員工姓名"<<m_Name<<endl; //輸出員工姓名 } }; class COperator :public CEmployee //定義一個(gè)操作員類,從CEmployee類派生而來 { public:char m_Password[128]; //定義密碼bool Login() //定義登錄成員函數(shù) {if (strcmp(m_Name,"MR")==0 && //比較用戶名。比較兩個(gè)字符串,設(shè)這兩個(gè)字符串為str1,str2,若str1==str2,則返回零;若str1>str2,則返回正數(shù);若str1<str2,則返回負(fù)數(shù)。strcmp(m_Password,"KJ")==0) //比較密碼 {cout<<"登錄成功!"<<endl; //輸出信息return true; //設(shè)置返回值 }else{cout<<"登錄失敗!"<<endl; //輸出信息return false; //設(shè)置返回值 }} }; int main(int argc, char* argv[]) {COperator optr; //定義一個(gè)COperator類對(duì)象strcpy(optr.m_Name,"MR"); //訪問基類的m_Name成員strcpy(optr.m_Password,"KJ"); //訪問m_Password成員optr.Login(); //調(diào)用COperator類的Login成員函數(shù)optr.OutputName(); //調(diào)用基類CEmployee的OutputName成員函數(shù)return 0; } View Code

運(yùn)行結(jié)果:

? ? ?程序中,CEmployee類是COperator類的基類,也就是父類。COperator類將繼承CEmployee的所有非私有成員(private類成員不能被繼承)。

? ? 用戶在父類中派生子類時(shí),可能存在一種情況,即在子類中定義了一個(gè)與父類同名的成員函數(shù),此時(shí)稱為子類隱藏了父類的成員函數(shù)。

轉(zhuǎn)載于:https://www.cnblogs.com/lovemi93/p/7565163.html

總結(jié)

以上是生活随笔為你收集整理的C++入门经典-例8.1-类的继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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