/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:刘涛
* 完成日期:2016年5月9日
* 版本号:vc++6.0
*/
#include<iostream>
using namespace std;
class A
{
private:
int x;
protected:
int y;
public:
int z;
A(int a,int b,int c)
{
x=a;
y=b;
z=c;
}
int Getx() {return x; }
int Gety() {return y; }
void ShowA() {
cout<< "x="<<x<<'\t';
cout<<"y="<<y<<'\t';
cout<<"z="<<z<<'\n';
}
};
class B:public A //如果改为protected,会发生错误,原因是保护继承,基类中的公有成员和保护成员在派生类中都以保护成员的身份出现
{
private:
int m,n;
public:
B(int a,int b,int c,int d,int e):A(a,b,c)
{
m=d;
n=e;
}
void Show(){
cout<<"m="<<m<<'\t'<<"n="<<n<<'\n';
cout<<"x="<<Getx()<<'\t';
cout<<"y="<<y<<'\t'<<"z="<<z<<'\n';
}
int Sum()
{
return (Getx()+y+z+m+n);
}
};
int main(){
B b1(1,2,3,4,5);
b1.ShowA();
b1.Show();
cout<< "Sum="<<b1.Sum()<<'\n';
cout<<"x="<<b1.Getx()<<'\t';
cout << "y=" <<b1.Gety()<<'\t';
cout << "z="<<b1.z<<'\n';
return 0;
}
运行结果:
<img src="https://img-blog.csdn.net/20160509120505051?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
分析:
由于x是私有的,所以不能直接访问,通过成员函数来访问,y,z直接可以访问。