#include <iostream.h>
#include <string.h>
#include <stdio.h> //getchar関数
class TControl
{
private:
int a;
protected:
int b;
public:
int c;
TControl(int d=0,int e=0,int f=0){a=d,b=e,c=f;}
int Get_a(){return a;}
void Set_a(int buf){a=buf;}
};
//TControlをpublicで継承---------------------------------------------------->
class TControl_Public :public TControl
{
public:
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//TControl_Public(int d=0,int e=0,int f=0){a=d,b=e,c=f;}
TControl_Public(int d=0,int e=0,int f=0){Set_a(d),b=e,c=f;}
void Show();
};
void TControl_Public::Show()
{
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//cout<<"a="<<a<<" b="<<b<<"
c="<<c<<endl;
cout<<"a="<<Get_a()<<" b="<<b<<"
c="<<c<<endl;
}
//TControlをprotectedで継承------------------------------------------------->
class TControl_Protected :protected TControl
{
public:
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//TControl_Protected(int d=0,int e=0,int f=0){a=d,b=e,c=f;}
TControl_Protected(int d=0,int e=0,int f=0){Set_a(d),b=e,c=f;}
void Show();
};
void TControl_Protected::Show()
{
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//cout<<"a="<<a<<" b="<<b<<"
c="<<c<<endl;
cout<<"a="<<Get_a()<<" b="<<b<<"
c="<<c<<endl;
}
//TControlをprivateで継承------------------------------------------------->
class TControl_Private :private TControl
{
public:
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//TControl_Private(int d=0,int e=0,int f=0){a=d,b=e,c=f;}
TControl_Private(int d=0,int e=0,int f=0){Set_a(d),b=e,c=f;}
void Show();
};
void TControl_Private::Show()
{
//エラー:TControlのpraiveteメンバの[a]はアクセスできません。
//cout<<"a="<<a<<" b="<<b<<"
c="<<c<<endl;
cout<<"a="<<Get_a()<<" b="<<b<<"
c="<<c<<endl;
}
void main(void)
{
TControl_Public Control_Public(1,2,3);
TControl_Protected Control_Protected(1,2,3);
TControl_Private Control_Private(1,2,3 );
Control_Public.Show();
Control_Protected.Show();
Control_Private.Show();
//publicで継承した場合----------------------------------------------------->
//エラー:privateメンバはアクセスできません。
//cout<<Control_Public.a<<endl;
//エラー:protectedメンバはアクセスできません。
//cout<<Control_Public.b<<endl;
//成功:publicメンバはアクセスできます。
//cout<<Control_Public.c<<endl;
//protectedで継承した場合----------------------------------------------------->
//エラー:privateメンバはアクセスできません。
//cout<<Control_Protected.a<<endl;
//エラー:protectedメンバはアクセスできません。
//cout<<Control_Protected.b<<endl;
//エラー:publicメンバはアクセスできません。
//cout<<Control_Protected.c<<endl;
//privateで継承した場合----------------------------------------------------->
//エラー:privateメンバはアクセスできません。
//cout<<Control_Private.a<<endl;
//エラー:protectedメンバはアクセスできません。
//cout<<Control_Private.b<<endl;
//エラー:publicメンバはアクセスできません。
//cout<<Control_Private.c<<endl;
getchar();
}
|