封装:提高代码维护性;(遇到问题能够准确定位)
继承:提高代码复用性;(不是ctrl+c ctrl+v,不是任何修改或者操作源代码就能实现代码的复用)
多态:提高代码扩展性
#include <iostream>
using namespace std;
class A
{
public:
void print()
{
cout << "hello world" << endl;
}
int m_num = 12;
protected:
int m_index = 13;
private:
int m_count = 15;
};
A是B的父类;B是A的子类
A是B的基类;B是A的派生类,派生类的实例化对象大小:父类的对象大小 + 派生类的新成员;
覆盖:派生类拥有与基类相同的属性或者方法时,派生类会覆盖;
/**
- 继承方式:
- public公有继承:基类的公有成员和属性成为派生类的公有;基类的被保护的属性和方法成为派生类的被保护;基类私有成员不能被继承;
- !private:私有继承:基类的公有成员和属性成为派生类的私有;基类的被保护的属性和方法成为派生类的私有;基类私有成员不能被继承;
- !protected被保护继承:基类的公有成员和属性成为派生类的被保护的;基类的被保护的属性和方法成为派生类的被保护的;基类私有成员不能被继承;
*/
class B :protected A //private protected public
{
public:
//A a;//组合:
//int m_num;
//int count;
void func()
{
// a.func();
//cout << m_index <<endl;被保护可访问
//cout << m_count << endl;私有不可访问
print();
}
//void print()
// {
// cout << "hi world" << endl;
//}
}