ad

《C++程序开发案例课堂》_了解C++的更好途径_10.6 类成员的访问控制

admin 66 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第10章,第6节,由刘春茂、李琪编著。

10.6 类成员的访问控制

《C++程序开发案例课堂》_了解C++的更好途径_10.6 类成员的访问控制

在前面已经介绍过,类中的数据成员和函数成员分别对对象的属性和行为进行描述说 明,相互依存。类中数据成员的声明方式同普通变量相似,将声明放到类的大括号中即可。 类中的成员函数的定义与普通函数定义相似,在类中定义或者在类外定义都可以。类中的数 据成员和数据变量与普通的变量和函数的区别在于访问权限的控制是由类内部来定义的。在 C++ 中,用户可以通过类来定义类内部的数据成员和成员函数的访问权限。

类中被操作的数据是私有的,实现的细节对用户是隐蔽的,这种实现称为私有实 现,这种“类的公用接口与私有实现的分离”形成了信息隐蔽。

10.6.1 私有成员

私有类型成员用 private 声明(若私有类型成员紧接着类名称,可省略关键字),私有类型 的成员只允许本类的成员函数来访问,而类外部的任何访问都是非法的。这样完成了私有成 员的隐蔽。

下面通过一个实例来说明私有成员的使用方法。

【例10-5】使用私有成员(代码10-5.txt)。

新建名为 privatecytest 的 C++Source File 源程序。源代码如下:

#include #include

using namespace std;

class test

private:// 私有成员类外不能够直接访问 int number;

//public://公有成员类外能够直接访问 // float score;

return number;

void setnum(int a)

number=a;

};

void main()

test a;

//a.number=10;// 错误的,私有成员不能外部访问

//a,score=99.9f;

//cout<

a.setnum(100);// 通过公有成员函数 setnum() 间接对私有成员number 进行赋值操作

cout<

cin.get();

system("pause");

【代码剖析】

在该例中,首先定义了 test 类,该类有1个私有成员 number, 定义了2个公有成员函 数, rp 函数是取得 number 的值,而 setnum 的作用是将参数 a 的值赋给 number。 在主程序 中,定义一个test的对象a, 调用 a 的 setnum 函数,给 a 的 number 赋值100;调用a 的 rp 函 数,将 a 的 number 输出。从结果来看,正确地输出了 a 的 number。 对于私有成员的访问,必须定义公有成员函数 来访问,私有成员不能被外部直接访问,这也是C++ 类的一个安全特性。

10.6.2 公有成员

公有类型成员用 public 关键字声明,任何一个来自类外部的访问都必须通过这种类型的 成员来访问(对象.公有成员)。公有类型声明了类的外部接口。

下面通过一个实例来说明公有成员的访问过程。

【例10-6】使用公有成员(代码10-6.txt)。

新建名为 publiccytest 的 C++ Source File 源程序。源代码如下:

using namespace std;

class test

private:// 私有成员类外不能够直接访问

int number;

public:// 公有成员类外能够直接访问

float score;

public:

int rp()

return number;

void setnum(int a)

number=a;

};

yoid main()

test a;

//a,number=10;// 错误的,私有成员不能外部访问

a.score=99,9f

cout<

//a,setnum(100);// 通过公有成员函数 setnum() 间接对私有成员number 进行赋值操作

//cout<

cin.get();

system("pause");

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_7.1.3 数组的操作
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_2.1.3 变量声明和定义
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×