c++里的继承比c,OC,java复杂,因为C++里的继承是多继承的,java ,oc里的继承是单继承的
c++的继承的模式有三种
1 私有继承 2.保护继承, 3.共有继承
区别于三种权限,是用来修饰成员属性和成员方法
能继承的时父类的public proteced
私有继承:表示继承过来的所有成员都变成私有成员
保护继承,继承过来的所有成员都成保护成员
共有继承,表示继承过来的成员,原来是什么权限,现在就是什么权限
#include <iostream>
using namespace std;
class father {
private:
int a;
int b;
public:
int c;
int d;
protected:
int e;
int*p;
public:
void setA(int newA){
a=newA;
};
void showA(void){
cout<<a<<endl;
}
};
class Son:public father
{
public:
void func(void){
c=9;
e=10;
};
private:
int A;
};
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
Son son;
son.setA(9999);
son.showA();
//继承于父类的方法,可以访问父类的私有变量
//继承是怎么发生的呢?
//所谓的继承,其实是继承了父类的所有变量,之时编译器做了权限设置,
//父类访问父类的变量是是给前四个字节,
//继承的子类也能访问前四个字节
//子类(父类的空间+自己独有的空间,)父类的空间在前,子类在后
cout<<sizeof(father)<<endl;
cout<<sizeof(son)<<endl;
//子类的空间要比父类的空间大
return 0;
}