[UE4]C++ getter and setter

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

最近老是在想,既然要设为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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/270875

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午9:33
下一篇 2023年2月14日 下午9:33

相关推荐