当前位置:天才代写 > tutorial > C语言/C++ 教程 > C++类的担任与多重担任的会见节制

C++类的担任与多重担任的会见节制

2017-11-05 08:00 星期日 所属: C语言/C++ 教程 浏览:335

在前面的操练中我们一直在利用public的担任方法,即共有担任方法,对付protected和private担任方法,即掩护担任与私有担任方法我们并没有接头。

对付单个类来说,接头掩护担任与私有担任的区别意义是不大的,他们的区别只在多级担任的环境中浮现。

在这里我声明一下,对付此章节的内容不太适适用过多的文字举办描写,主要照旧看例子,通过例子熟悉之间的干系,过多的文字描写会恍惚读者思路。

例程如下(重要部门都做了具体说明):

//措施作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream>
using namespace std;
class Base
{
public://公有的
int a1;
virtual void test() = 0;
protected://受掩护的
int a2;
private://私有的
int a3;
};
//------------------------------------------------------------------------------
class ProtectedClass:protected Base//掩护担任
{
public:
void test()
{
a1 = 1;//a1在这里被转变为protected
a2 = 2;//a2在这里被转变为protected
//a3=3;//错误,派生类不能会见基类的私有成员
}
};
class ControlProtectedClass:public ProtectedClass//以public方法担任ProtectedClass类
{
public:
void test()
{
a1 = 1;//a1在这里仍然保持为a1在这里被转变为protected
a2 = 2;//a2在这里仍然保持为a1在这里被转变为protected
//a3=3;//错误,由于Base类成员为私有的,纵然是上级父类是掩护担任,也不能改变Base类成员的节制范例
}
};
//------------------------------------------------------------------------------
class PrivateClass:private Base//私有担任
{
public:
void test()
{
a1 = 1;//a1在这里被转变为private
a2 = 2;//a2在这里被转变为private
//a3=3;//错误,基类私有成员对文件区域与派生类区域都是不行会见的
}
};
class ControlPrivateClass:public PrivateClass//以public方法担任PrivateClass类
{
public:
void test()
{
//a1=1;//错误,由于基类PrivateClass为私有担任,a1已经转变为private
//a2=2;//错误,由于基类PrivateClass为私有担任,a1已经转变为private
//a3=3;//错误,由于Base类成员为私有的,PrivateClass类也为私有担任
}
};
//------------------------------------------------------------------------------
class PublicClass:public Base//共有担任有区别与其它方法的担任,担任后的各成员不会其改叛变制方法
{
public:
void test()
{
a1 = 1;//a1仍然保持public
a2 = 2;//a2仍然保持protected
//a3=3;//错误,派生类不能操纵基类的私有成员
}
};
class ControlPublicClass:public PublicClass//以public方法担任PublicClass类
{
public:
void test()
{
a1 = 1;//a1仍然保持public
a2 = 2;//a2仍然保持protected
//a3=3;//错误,由于Base类成员为私有成员,纵然是上级父类是公有担任,也不能改变Base类成员的节制范例
}
};
//------------------------------------------------------------------------------
int main()
{
system("pause");
}

当真看完了例子,相信细心的读者对付共有担任、掩护担任与私有担任的区别与特点已经相识,最后再提醒一下读者,在担任干系中,基类的private成员不单对应用措施埋没,纵然是派生类也是埋没不行会见的,而基类的掩护成员只对应用措施埋没,对付派生类来说是不埋没的,掩护担任与私有担任在实际编程事情中利用是极其少见的,他们只在技能理论上有意义。

 

    关键字:

天才代写-代写联系方式