C ++:前向声明,循环依赖,静态方法

时间:2017-04-29 12:57:07

标签: c++ static circular-dependency

以下代码非常简单,给出了这个错误:

  

[错误]嵌套名称说明符

中使用的不完整类型“C_1”

我有两个相互交互的类,调用自己的方法。 使用此代码,我无法调用C1 :: test(),因为它似乎没有找到。 任何帮助表示赞赏。

C1.h:

#ifndef C1
#define C1

#include <iostream>
using namespace std;

#include "C2.h"

class C_1{

    private:

        static C_2* c2;
    public:

        static void test();
};

#endif

C1.cpp:

#include "C1.h"

C_2* C_1::c2=new C_2();

void C_1::test(){

    cout << "C_1 test() method called." << endl;
    C_1::c2->test();
}

C2.h:

#ifndef C2
#define C2

class C_1;

class C_2{

    public:

        C_2();
        void call();

        void test();
};
#endif

C2.cpp:

#include "C2.h"

C_2::C_2(){}

void C_2::call(){

    C_1::test();
}

void C_2::test(){

    cout << "C_2.test() method called!"  << endl;
}

0 个答案:

没有答案