我有一个返回指向对象的指针的函数。像这样:
class SomeClass
{
public:
Object* getObject() const { return &obj; };
private:
Object obj;
}
问题是我没有调用函数来更改返回的对象,它可能会调用在内部对其进行操作的函数,但不要更改 SomeClass 中的obj ......一个例子可能更容易理解:
- 如果函数返回指向 const 对象const Object* getObject() const
的指针,则调用函数将无法使用该对象的非 const 方法(但我希望它们能够使用)。
- 如果我只是返回指针,调用函数可能会更改对象:
Object* pointer = sclass.getObject();
*pointer = Object();
所以sclass中的 Object现在是一个不同的对象(我不想发生这种情况)。
有解决方法吗?