另一个类成员函数中另一个类的对象

时间:2012-08-22 09:10:24

标签: c++

我有以下代码:

class A
{
public:
    A();

private:
    void slot();
};

第二类B看起来像:

class B
{
public:
    B();

private:
    // Some stuff...
};

在file1.cpp中,有两个类的静态对象:

static A a;
static B b;

现在在file2.cpp(包含类实现)中,我需要在class A的slot函数中创建在file1.cpp中创建的对象b。获得它的最佳方法是什么? 如何使用C ++完成?

1 个答案:

答案 0 :(得分: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