在c++中可重用性是通过“继承”这一机制来实现的。。。。。
1.那么什么是继承呢?
简单说:龙生龙,凤生凤老鼠的儿子会打洞
用代码举个最简单的继承例子(单继承方式)
class A
{
public:
int _a;
void Display1()
{
cout<<_a<<endl;
}
};
class B:public A //B公有继承了A
{
public:
int _b;
void Display2()
{
cout<<_a<<endl;//派生类可以访问基类的公有成员
cout<<_b<<endl;
}
};
void TunTest()
{
A a;
a._a = 10;
a.Display1();
B b;//B公用继承了A的成员函数和成员变量
b._a = 20;//在类外可以通过B访问A中成员变量的_a
b.Display1();//在类外也可以通过B访问A中成员函数的Display1
}
int main()
{
TunTest();
system("pause");
return 0;
}
通过以上代码大致解析一下继承~
2. 接下来我们就来一一探讨一下,在什么情况下派生类可以访问基类的所有成员变量和函数–》》
基类的成员函数或者成员变量有三种类型
public/protected/private
而继承的方式有三种形式:public/protected/private,那么问题是它们究竟是怎么访问的呢???
下面我们在VS2013上对各种情况试一下~
(一)public继承
class A
{
public:
void Display1()
{
cout <<" Display1() "<< endl;
}
public:
int _a1;
protected:
int _a2;
private:
int _a;
};
class B:public A//公有继承
{
public:
void Display2()
{
cout << " Display2() " << endl;
cout << _a1 << endl;//可以访问
cout << _a2 << endl;//可以访问
//cout << _a << endl;//不可访问,只能在A类中访问
}
public:
int _b1;
protected:
int _b2;
private:
int _b;
};
void</