C++继承和派生简明教程
生活随笔
收集整理的這篇文章主要介紹了
C++继承和派生简明教程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C++ 中的繼承是類與類之間的關(guān)系,是一個(gè)很簡(jiǎn)單很直觀的概念,與現(xiàn)實(shí)世界中的繼承類似,例如兒子繼承父親的財(cái)產(chǎn)。
繼承(Inheritance)可以理解為一個(gè)類從另一個(gè)類獲取成員變量和成員函數(shù)的過程。例如類 B 繼承于類 A,那么 B 就擁有 A 的成員變量和成員函數(shù)。
在C++中,派生(Derive)和繼承是一個(gè)概念,只是站的角度不同。繼承是兒子接收父親的產(chǎn)業(yè),派生是父親把產(chǎn)業(yè)傳承給兒子。
被繼承的類稱為父類或基類,繼承的類稱為子類或派生類。“子類”和“父類”通常放在一起稱呼,“基類”和“派生類”通常放在一起稱呼。
派生類除了擁有基類的成員,還可以定義自己的新成員,以增強(qiáng)類的功能。
以下是兩種典型的使用繼承的場(chǎng)景:
1) 當(dāng)你創(chuàng)建的新類與現(xiàn)有的類相似,只是多出若干成員變量或成員函數(shù)時(shí),可以使用繼承,這樣不但會(huì)減少代碼量,而且新類會(huì)擁有基類的所有功能。
2) 當(dāng)你需要?jiǎng)?chuàng)建多個(gè)類,它們擁有很多相似的成員變量或成員函數(shù)時(shí),也可以使用繼承。可以將這些類的共同成員提取出來,定義為基類,然后從基類繼承,既可以節(jié)省代碼,也方便后續(xù)修改成員。
下面我們定義一個(gè)基類 People,然后由此派生出 Student 類:
#include<iostream> using namespace std; //基類 Pelple class People{ public:void setname(char *name);void setage(int age);char *getname();int getage(); private:char *m_name;int m_age; }; void People::setname(char *name){ m_name = name; } void People::setage(int age){ m_age = age; } char* People::getname(){ return m_name; } int People::getage(){ return m_age;}class Student:public People{public:void setscore(float score);float getscore(); private:float m_score; }; void Student::setscore(float score){ m_score = score; } float Student::getscore(){ return m_score; } int main(){Student stu;stu.setname("小明");stu.setage(16);stu.setscore(95.5f);cout<<stu.getname()<<"的年齡是 "<<stu.getage()<<",成績(jī)是 "<<stu.getscore()<<endl;return 0; }運(yùn)行結(jié)果:
小明的年齡是 16,成績(jī)是 95.5本例中,People 是基類,Student 是派生類。Student 類繼承了 People 類的成員,同時(shí)還新增了自己的成員變量 score 和成員函數(shù) setscore()、getscore()。這些繼承過來的成員,可以通過子類對(duì)象訪問,就像自己的一樣。
總結(jié)
以上是生活随笔為你收集整理的C++继承和派生简明教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++引用不能绑定到临时数据
- 下一篇: C++三种继承方式