封装函数有什么特别意义?为什么叫封装函数?
为什么把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; }
就是这样,觉得有用就采纳吧!
举报