c++中private类型数据在派生类中不可见,可是依然可以通过成员函数访问

c++中private类型数据在派生类中不可见,可是依然可以通过成员函数访问,这与private类型数据有什么区别啊? private类型数据,不可直接访问,要通过成员函数访问。 private类在派生类中说是不可见,可还是与private类型一样,不可直接访问,但可通过成员函数访问。 那这个不可见还有什么意义?不就和private类型一样了吗? class A { int a; public: int set(int b){a=b;} int get(){return a;} }; class B:public A{}; void main() { B s; s.set(6); cout< }

属性提供了访问类的非Public字段的访问,可以实现信息的隐藏,也可以设置字段的值的有效性,比如说:
class
ClassName
{
private
int
age;
//年龄在0
-
200之间
public
int
Age
{
get
{
Age
=
age;
}
set
{
if(value>0
||
value<200)
age
=
value
else
age
=
0
}
}
}
以上的Age属性存取程序可以保证年龄age字段的合法性
如果不使用属性,而直接将age定义为public,则就可以对age赋于非法的值,如大于200
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-26
你只能通过A
提供的
set

get
来访问
a
在B中你不能再用其他方法去访问。
就好像A提供的路,
你只能从这条路过。
如果是B
自己的私有变量,你想怎么修路都可以。
相似回答
大家正在搜