有对象返回值吗?

时间:2019-04-17 13:38:15

标签: c++

我希望以某种方式拥有一个对象,当单独放置时求一个浮点数。

例如:


    ClassName obj;
    obj = 2;
    float ans = obj:

我正在尝试为对象编写一种模仿简单成员访问语法的方法,如下所示:


    Class ClassName{
    public:
        float num = 33;
    };

    ans = obj.num;

,但每次您对其进行读写时,也会运行额外的代码。即使它看起来不是这样,它也将具有隐藏数据的额外好处。具体来说:


    Class Entity{
    private:
        struct position{
            float val = 0;
            void operator= (float inp){
                val = inp;
                // do other stuff
             }
        }
    public:
        position x;
        position y;
        position z;
    };

此代码将允许您在写入x,y和z对象的值时运行额外的代码,如下所示:


    Entity obj;
    obj.x = 32;

但是我正在尝试一种方法,让obj.x计算为一个数字,并可能运行额外的代码而无需编写访问器函数:(或直接访问val)


    float ans = obj.x.getVal();
    // but instead
    float ans = obj.x;

有没有办法做到这一点?

0 个答案:

没有答案