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