3

クラスの 1 つに変数があります。

Object * myObject;

他のクラスでアクセスできるようにするには、他のクラスが必要です。

それにアクセスできるようにするための最良の方法は何ですか?

次の実装は正しいですか?

#ifndef GLOBALS_H
#define GLOBALS_H

#include "Object.h"

Object * myObject[5][5];

#endif

編集:

もう少し情報、基本的に私はクラス A とクラス B を持っています。

クラス A には、クラス B がアクセスする必要がある変数 myObject があります。クラスAにはクラスBのオブジェクトもあります。つまり、クラスAにはクラスBのヘッダーが含まれているため、クラスBのヘッダーにクラスAのヘッダーを含めることはできません。

4

3 に答える 3

0

グローバル変数を格納するための最も社会的に受け入れられるソリューションは、間違いなくsingletonです。C++ での典型的な実装は次のようになります。

#include <iostream>
using namespace std;

class Singleton
{
public:
        static Singleton& Get() {
                static Singleton singleton;
                return singleton;
        }

        void DoSomething() { cout << "Something!\n"; }

private:
        Singleton() {}
};

int main()
{
        Singleton::Get().DoSomething();
}

典型的なグローバル変数に対するこの主な利点は、オブジェクトの構築方法をより詳細に制御できることです。

これは依然としてグローバル変数であることを忘れないでください。したがって、最も害の少ない選択肢である場合にのみ使用してください。

于 2013-05-31T23:04:37.577 に答える