0

私は次のコードを持っています:

class A
{
public:
    A();

private:
    void slot();
};

2 番目のクラス B は次のようになります。

class B
{
public:
    B();

private:
    // Some stuff...
};

file1.cpp には、両方のクラスの静的オブジェクトがあります。

static A a;
static B b;

ここで、file2.cpp (クラスの実装を含む) で、file1.cpp で作成されclass Aた objectのスロット関数が必要になります。bそれを得る最良の方法は何ですか?これは C++ を使用してどのように行われますか?

4

1 に答える 1

1

static「この翻訳単位にローカル」を意味します。あなたがやろうとしていることは不可能です。

別の設計では、次のような非静的名前空間スコープオブジェクトを使用します。

globals.hpp:

extern A a;
extern B b;

globals.cpp:

#include "globals.hpp"
A a;
B b;

A.cpp:

#include "globals.hpp"
void A::slot(){
    //use b
}

構築さA::slotれる前に電話をかけないように、この設計には注意する必要があります。b

于 2012-08-22T09:17:19.727 に答える