#include<iostream>
#include<stdlib.h>
using namespace std;
//1.访问权限
class B
{
public:
void Fun1(int b1,int b2,int b3)
{
_b1=b2;
_b2=b2;
_b3=b3;
}
public:
int _b1;
protected:
int _b2;
private:
int _b3;
};
class C:private B
{
public:
void Fun2()
{
_b1=1;
_b2=2;
_b3=3;//不可以访问,private继承下来了,但是不可以访问,不可见
}
public:
int _c1;
protected:
int _c2;
private:
int _c3;
};
class D:protected C
{
public:
void Fun3()
{
_b1=1;
_b2=2;
_b3=3;
}
public:
int _d1;
protected:
int _d2;
private:
int _d3;
};
//2.构造函数的调用顺序
//a.基类没有缺省的构造函数,必须在派生类的初始化列表中显示给出基类类名和参数列表
class B
{
public:
B(int b)
{cout<<"B()"<<endl;};
private:
int _b;
}
class C1:public B
{
C1(int c1)
:B(c1)
{cout<<"C1()"<<endl;}
private:
int _c1;
};
//b.基类有带参的构造函数,派生类一定要定义构造函数.
class B
{
public:
B(int b)
{cout<<"B()"<<endl;};
private:
int