c++ 类相互引用

类A和类B相互引用

文件 A.h

#ifndef HEAD_A
#define HEAD_A

#include"B.h"
class B;

class A
{
private:
    /* data */

public:
    A(/* args */);
    ~A();

    B* b;
    const char* sayYes();
};


#endif

文件 A.cpp


#include"A.h"

A::A(/* args */)
{
}

A::~A()
{
}

const char* A::sayYes()
{
    return "A:yes.";
}

文件 B.h


#ifndef HEAD_B
#define HEAD_B

#include"A.h"
// #include"A.cpp"
class A;

class B
{
private:
    /* data */
    int i;
public:
    B(/* args */);
    ~B();

    const char* sayYes();
    A* a;
};
#endif

文件 B.cpp


#include"B.h"



B::B(/* args */)
{
}

B::~B()
{
}

const char* B::sayYes(){return "B:yes.";}

文件 main.cpp

#include <iostream>
using namespace std;

#include "A.h"
#include "A.cpp"

#include "B.h"
#include "B.cpp"

int main()
{
    A a;
    B b;

    cout << "hello world  1  :" << a.sayYes() << endl;
    cout << "hello world  2  :" << a.b->sayYes() << endl;

    cout << "hello world  3  :" << b.sayYes() << endl;
    cout << "hello world  4  :" << b.a->sayYes() << endl;
}

== end

posted @ 2021-10-26 10:25  一三五  阅读(237)  评论(0)    收藏  举报