成员函数参数可以访问私有数据成员

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao3132453/article/details/83047445

问题描述:

C++ Time类,有个private成员变量hours,然后类声明以后是不能直接 访问的 ,比如不能像这样
Time planning; planning.hours。不能这样使用是很明白的。但是却发现,在Time类的方法里面可以这样用,

很奇怪,这个t 是作为一个参数,但是和上面的planning.hours是一个意思啊,为什么这个里面可以这样用。

原因描述:

引用C++标准原文
A member of a class can be
— private; that is, its name can be used only by members and friends of the class in which it is
declared.
— protected; that is, its name can be used only by members and friends of the class in which it is
declared, and by members and friends of classes derived from this class (see 11.5).
— public; that is, its name can be used anywhere without access restriction.

访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。因为CExample(const CExample& RightSides) 是类的成员函数,所以有权限访问私有数据成员。如果是在main函数中直接RightSides.nSize,那肯定就会报错了,不能访问,因为这是在类外不能访问私有数据成员。一个类的成员函数可以访问这个类的私有数据成员,我们要理解这个对类的访问限制,而不是针对对象。
 

猜你喜欢

转载自blog.csdn.net/zhao3132453/article/details/83047445