封装函数有什么特别意义?为什么叫封装函数?
为什么把setName()、getName()叫做封装函数?什么情况下这么称呼
为什么把setName()、getName()叫做封装函数?什么情况下这么称呼
2016-06-10
因为封装好了之后,对数据的操作才是有规有矩的。如果不封装,完全可能出现这样的情况:
class Student {
public:
string stuName;
};
int main() {
Student stu;
stu.stuName = 3;
return 0;
}这样明显是不合法的(把数字付给字符串),但是这样在编译的时候不会出错,只有在运行的时候才能体现出来。
但是如果封装了的话,就会是这样:
class Student {
public:
void setName(string name){ //设置stuName的值;
stuName = name;
}
string getName() { //获取stuName的值;
return stuName;
}
private:
string stuName; //因为stuName是private,所以下面的实例对象不能直接访问
};
int main() {
Student stu;
stu.setName(3);
//这里传入3是会报错的,因为在定义这个函数的时候就指明了传入的必须是一个string类型。
stu.setName("小明");
cout << stu.getName() << endl;
//在获取属性的时候也不用担心对属性值产生影响,这样无疑是非常安全的。
return 0;
}就是这样,觉得有用就采纳吧!
举报