У меня есть свой собственный класс SomeObject с несколькими членами.
Теперь у меня есть другой класс "WorkingClass", который связывается с этим объектом как с приватным членом.
Мой вопрос таков: я хочу создать Getter для «SomeObject», но я не хочу, чтобы кто-либо его изменял.
какой путь лучше, 1 или 2?
class WorkingClass
{
private:
SomeObject sObj;
public:
//... 1)
const SomeObject &const GetSomeObject()
{
return mousePosition;
}
//... 2)
const SomeObject *const GetSomeObject()
{
return &mouseMovement;
}
}
я знаю, что вы всегда можете отказаться от const, но все же я просто пытаюсь сделать мой код чистым и безотказным
EDIT:
тогда у меня есть еще один вопрос. когда у меня есть член со смарт-указателем, и я часто использую его внутри класса, а затем вдруг хочу, чтобы кто-то имел доступ к чтению некоторых значений, но не более того, это было бы хорошим решением или это снова было многословно?
class X
{
private:
boost::shared_ptr<SomeObject> sob
public:
const const & GetSomeObject()
{
return *sob.get();
}
}
а как насчет возврата "const boost :: shared_ptr <...> GetX ()"? это не может быть действительно необходимым, но все же не бесполезным, поскольку компилятор запретил бы GetX (). reset (..) в таком случае, и без объявления const boost :: ... эта бесполезная операция была бы разрешена. или я не прав?