继承:在已有的类上做一些改造,做出一个新的类。
接口与成员函数的区别:成员函数(成员变量)可以是public和private,其中public的部分构成接口
Student继承了Person,拥有更多属性
被继承的类放在上面,继承的类放在下面 。
基类——派生类
父类——子类
#include<iostream>
using namespace std;
class A{
public:
A():i(0){cout<<"A::A()"<<endl;}
~A(){cout<<"A::A()"<<endl;}
void print(){cout<<"A::f()"<<i<<endl;}
protected://只有自己以及子类可以使用
void set(int ii){i=ii;}
private:
int i;
};
class B:public A{//B继承A,则B得到了A的所有内容(接口,成员变量,成员函数)
public:
void f(){
set(20);//可以调用父类的public
// i=30;//会报错,父类私有的内容,子类中存在,但不可以直接使用,只能通过父类的函数(public)使用
print();
}
};
int main()
{
B b;//B是A的子类,所以A的构造函数会被调用
// b.set(10);//protected情况下,会报错
b.print();
b.f();
return 0;
}