解决C&C++头文件互相包含问题

  • Post author:
  • Post category:其他


案例说明:test1中需要调用test2中的go_test2,test2中需要调用test1中的go_test1



main.cpp

#include <lontern.h>
#include "test1.h"
#include "test2.h"
int main() {
	test1 t1;
	t1.print_test1();

	test2 t2;
	t2.print_test2();
}




test1.h

#pragma once
#include <lontern.h>
//#include "test2.h"  取消这里的头文件引用,添加到CPP中
class test2;  //声明test2
class test1
{
	test2* t2;
public:

	void print_test1();
	void go_test1();
};




test1.cpp

#include "test1.h"
#include "test2.h"
void test1::print_test1()
{
	cout << "print_test1" << endl;
	//t2.print_test2();  取消 用指针的方式调用
	t2->go_test2();
}

void test1::go_test1()
{
	cout << "go_test1" << endl;
}




test2.h

#pragma once
#include <lontern.h>
//#include "test1.h"  取消这里的头文件引用,添加到CPP中
class test1; //声明test1
class test2
{
	test1* t1;
public:
	void print_test2();
	void go_test2();
};



test2.cpp

#include "test2.h"
#include "test1.h"
void test2::print_test2()
{
	cout << "print_test2" << endl;
	//t1.go_test1();  取消 用指针的方式调用
	t1->go_test1();
}
void test2::go_test2()
{
	cout << "go_test2" << endl;
}






版权声明:本文为z672160230原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。