我又回来了,接着更新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成员