欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++ #include 类互相包含问题

程序员文章站 2022-07-12 21:35:42
...
A.h文件
#ifndef _A_H_
#define _A_H_

#include"B.h"
static int count=0;

class A
{ 
public:
    void fun1();
}; 

#endif


B.h文件
#ifndef _B_H_
#define _B_H_

class A; //注意:这里是C++类的前向声明,没有用include“A.h”把对方加进来是考虑到了没有必要,因为最终两个类是要编译到一块

class B 
{
public:
    void fun2();
};
#endif


A.cpp文件
#include "stdafx.h"
#include "A.h"
#include <iostream>

using std::cout;
using std::endl;

void A::fun1()
{
    cout<<"a"<<endl<<count++<<endl;
    if(count==1000)
    {
        cout<<"太多了,停不下来了";
        getchar();
        exit(0);
    }
    B b;
    b.fun2();
}


B.cpp文件
#include "stdafx.h"
#include "A.h" //注意:这个地方没用B.h是考虑到了编译连接的顺序
#include <iostream>

using std::cout;
using std::endl;

void B::fun2()
{ 
    cout<<"b"<<endl<<count++<<endl;
    if(count==1000)
    {
        cout<<"太多了,停不下来了";
        getchar();
        exit(0);
    }
    A a;
    a.fun1();
}


main程序文件
#include "stdafx.h"
#include<iostream>
#include"A.h" //注意:这个地方没有include“B.h”但是下面用的了B类,说明B类头文件肯定在A.h中有include。

using std::cout;
using std::endl;

void main()
{
   A a;
   B b;
   a.fun1();
   b.fun2();
   getchar();
}