zoukankan      html  css  js  c++  java
  • [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 的实现通常并没有什么技术含量,一个赋值,另一个返回值。因为简单,所以常常最为内联函数来实现。

  • 相关阅读:
    python基础——dict和set(字典和集合)
    python基础——循环(for,while,break,continue)
    python基础——条件判断
    python基础——list和tuple(列表和元组)
    python基础——字符串、编码、格式化
    Linux 新建线程 简单使用
    Android 原始套接字
    QTextEdit/QPlainTextEdit 等_默认的滚动条_宽度调节
    494. Target Sum
    670. Maximum Swap
  • 原文地址:https://www.cnblogs.com/timy/p/8627567.html
Copyright © 2011-2022 走看看