我制作了一个自定义类,其中涉及大量的数字和字符串计算。通过只提供访问器而不提供修改器,我使我的类不可变。一旦构造了对象,就不会更改它的单个属性。
我的问题是,目前我所有的函数都是按值传递的。如果您有一个不可变对象,是否还需要通过引用传递?由于需要不断创建副本,因此按值传递是否会浪费内存?
例如:
class MyInteger
{
private:
const int val;
public:
MyInteger(const int a) : val(a) { };
int getValue() const { return val; }
MyInteger add(const MyInteger other)
{
return MyInteger(val + other.getValue());
}
}