C++的面向对象里的private的用法
#include<iostream.h>
#include<string.h>
class Person
{
char name[10],sex;
int age;
public:
Person(char *n,int a,char s)
{
strcpy(name,n);
age=a;
sex=s;
}
void print()
{
cout<<"name:"<<name;
cout<<",age:"<<age;
cout<<",sxe:"<<sex<<endl;
}
};
void main()
{
Person zh("zhang",50,'m'),c("cai",35,'w');
zh.print();
c.print();
}
问题是private里的3个属性的私有成员到底有什么作用啊,怎么隐藏啊?
有人这样回答:
private的目的就是外部无法进行随便修改,除非是友元函数之类的
这就是所谓的封装性啊
要修改的话可以加一些setter函数,好处是可以对数据的有效性一致性进行判断和控制吧
可是我的问题是:
private里面不就是一个对象的属性吗,就是把很多属性封装起来,外部无法修改是什么意思啊,那结构体不也具有封装性吗?
最近想再学学C++,还望达人指点