我又回來了,接着更新C++的基礎知識啦
C++面向對象
面向對象的三大特征
封裝性:保證資料安全,使得代碼子產品化,保證代碼的長期開發的可行性
繼承性:簡化代碼
多态性:簡化代碼,實作接口重用。
C++繼承
c++支援多根繼承,這一點和java的單根繼承有很大差別,但是java支援接口,來實作多繼承。
繼承的原因是為了避免代碼重複,不需要重新編寫資料成員和成員函數,隻需要見一個派生類來繼承基類中的成員就可以。
普遍認為,繼承是is a的關系。簡單來說就是,是什麼。比如說,轎車是車,寶馬三系是轎車,是以寶馬三系是車、諸如此類。
看代碼:
#include<iostream>
using namespace std;
class car{
protected:
int weight;
int height;
int length;
public:
void dispaly(){
cout<<"我是一台車"<<endl;
}
void set(int w,int h,int l){
weight=w;
height=h;
length=l;
}
};
class ls: public car{
public:
int getInfo() {
cout<<"我的重量是"<<weight<<endl;
}
};
int main(){
ls Ls;
Ls.set(1,2,3);
Ls.getInfo();
}
在這裡我們看到car是一個基類,他裡面包含了,protected(受保護)類型的基本width;weight;height三個成員變量,然後還有public類型的display()和set()函數。
ls(勞斯萊斯的簡拼,原諒我匮乏的英語單詞)是一個派生類
他通過
class ls: public car
繼承了基類car;繼承類型是public;
繼承類型
在說繼承之前,有必要說一下類和對象的通路權限,再類中類可以通路自身任意一種類型的成員。
但是類的執行個體化對象,是不能通路類的的protected和private類型的成員的
類之間的繼承方式有三種,公有繼承、保護繼承、和私有繼承。
pubilc(公有繼承):采用public方式繼承的派生類,基類中的公有成員依然是派生類中的公有成員,基類中的保護成員,依然是派生類中的保護成員,但是基類的私有成員不能被派生類直接通路。
protected(保護繼承):采用protected的派生類積累的公有成員和基類的保護成員會成為派生類中的保護成員。
private(私有繼承):采用私有繼承的類,基類的公有成員和保護成員将成為派生類中的私有成員。
對于非常特殊的私有成員,不管什麼方式繼承,不能被派生類所重新定義,private類型的成員自始至終都是基類的private成員