複雑なデータ型でアクセサーを使用する必要がありますか? 以下に例を示します。
Player
クラスがあり、その中にオブジェクトがあるとしますSprite
。Sprite
オブジェクトにsetPosition()
アクセサメソッドがあるとしましょう。ここで、プレーヤーを介してそのメソッドを呼び出したいとします。そのため、Sprite
オブジェクトへのアクセサーをPlayer
.
class Player
{
public:
const Sprite& getSprite() const;
private:
Sprite sprite;
}
ここで、'Player' オブジェクトを作成するとsetPosition
しsprite
ます。メソッドが返す参照が const であるplayerObject.getSprite().setPosition();
ため、一概には言えません。Sprite
getSprite()
オブジェクトがそのすべてのメンバーに対して保護されていることをsprite
考慮して、この状況でオブジェクトを公開する必要がありますか? sprite
または、それは悪い習慣であり、アクセサーを使用する必要がありますか?