私がシングルトンクラスを持っていると仮定しましょう:
class Singleton {
public:
static Singleton* getInstance();
void doit();
std::vector<Object*>& getVector();
private:
std::vector<Object*> _vector;
static Singleton *instance;
Singleton();
~Singleton();
Singleton(const Singleton&);
};
class Delegator {
public:
void main();
}
- この
doit
メソッドでは、_vector
オブジェクトへのポインタをに入力します。 main()
クラスから、結果Delegator
を呼び出しgetVector()
て表示します。
この抽象化を考えると、次の質問があります。
main()
fromのオブジェクトのインスタンスへのすべてのポインタを削除できますかDelegator
(結果を表示した後)。はいの場合、これは推奨されますか?- シングルトンが破壊されることはありますか?言い換えれば、返される参照は
getVector()
常に有効ですか? - のベクトルのコピーではなく、ベクトルへの参照を返します
getVector()
。ベクトルにはオブジェクトへのポインタのみが含まれ、クラス外のベクトルコンテンツは変更されないことを考えるとSingleton
、参照を返すことで得られる効率はありますか?
前もって感謝します