C++ getter and setter
来源:互联网 发布:以下哪个软件防火墙 编辑:程序博客网 时间:2024/05/18 02:57
问:以前面向对象没学好....
最近老是在想,既然要设为private为什么还要写个setter来改变它的值呢?
为什么不直接把它直接设成public倒省事?
最近老是在想,既然要设为private为什么还要写个setter来改变它的值呢?
为什么不直接把它直接设成public倒省事?
呵呵,谢啦
答:用setter来改变数据成员的值时,操作必须由这个对象自己来触发
用public来改变数据成员的值时,操作可以由任何对象来触发
这是面向对象的封装,总之就是自己的数据成员,只对自己可见,也只有自己才能改变其值,慢慢体会吧!
----------------------
从所周知,封装是面向对象的一个基本原则,封装可以限制对类中数据成员的直接存取。如果想要获取私有数据成员的值,通常的做法是在C++类中定义若干个“Setter”“Getter”成员函数,在C++术语也称“mutators”和 “accessors”,中文不知道该怎么描述。一个“纯粹”的 Setter 函数有一个形参,该形参的值被赋值给对象的成员,函数返回值为 void,Setters 和 Getters 函数一般都被声明为public。例如:
class Employee
{
int id;
//..
};
下面是这个类的一个 setter 函数:
class Employee
{
public:
void set_id(int n) {id=n;}
};
经典的getter一般没有参数,返回一个值;通常返回值被声明为const,例如:
class Employee
{
public:
int get_id() const { return id;}
};
setters 和 getters 的实现通常并没有什么技术含量,一个赋值,另一个返回值。因为简单,所以常常最为内联函数来实现。
0 0
- About Setter and Getter
- C++ getter and setter
- Getter and setter
- ES6 getter and setter
- getter and setter In java
- 学习笔记--getter and setter
- iOS 中 setter and getter
- Getter And Setter取消前缀
- Objective-C----setter 和 getter
- [iOS] getter and setter, @property and @synthesize
- [Objective-C] class add a property and its setter and getter
- Javascript Getter/Setter and prototype(extend dom)
- InterlliJ 定制Getter and Setter分享
- Intellij IDEA 自定义 getter and setter
- getter/setter
- setter,getter
- getter、setter
- getter ,setter
- 超过 130 个你需要了解的 vim 命令
- Android 下调试SO文件
- NDK编译库运行时报dlopen failed: cannot locate symbol "__exidx_end" 解决办法
- 【cocos2d x-3.3 rec】 LUA 学习
- 协方差
- C++ getter and setter
- 15款值得学习的小型开源项目,带你快速步入开源世界
- 海量数据处理:十道面试题与十个海量数据处理方法总结
- jQuery选择器总结
- CentOS 安装图形化界面方法
- Windows 上通过本地搭建 Jekyll环境
- 转 http://blog.csdn.net/hguisu/article/details/7776068 排序算法
- 简单区分Vmware的三种网络连接模式(bridged、NAT、host-only)
- java RMI入门指南