我希望以某种方式拥有一个对象,当单独放置时求一个浮点数。
例如:
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;
有没有办法做到这一点?