博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[UE4]C++ getter and setter
阅读量:4318 次
发布时间:2019-06-06

本文共 789 字,大约阅读时间需要 2 分钟。

问:以前面向对象没学好....

最近老是在想,既然要设为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 的实现通常并没有什么技术含量,一个赋值,另一个返回值。因为简单,所以常常最为内联函数来实现。

转载于:https://www.cnblogs.com/timy/p/8627567.html

你可能感兴趣的文章
C# winform DataGridView操作 (转)
查看>>
一致性Hash算法及使用场景
查看>>
JS - Lexical Structure
查看>>
【2】oracle创建表空间
查看>>
剑指offer-二叉树中和为某一值的路径
查看>>
Java反射机制
查看>>
Python 正则表达式
查看>>
C++ AppendMenu
查看>>
在所选中的物体中取消选中一些物体.txt
查看>>
grid - 网格项目跨行或跨列
查看>>
Shell 基本运算符
查看>>
2019年2月
查看>>
Google Noto Sans CJK 字体
查看>>
ES集群性能调优链接汇总
查看>>
STL库的应用
查看>>
spark算子
查看>>
(转)Linux服务器SNMP常用OID
查看>>
zoj2112 主席树动态第k大 ( 参考资料链接)
查看>>
弹出框popupWindow
查看>>
Python学习(007)-函数的特性
查看>>