关于C++语法的问题
  • 板块学术版
  • 楼主66xyyd
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/5/20 10:36
  • 上次更新2023/10/23 15:18:10
查看原帖
关于C++语法的问题
946515
66xyyd楼主2023/5/20 10:36

我在编写代码的时候,有两个文件Screen.h和Map.h。然后我在Screen.h中的类Screen里定义了一个结构体Data。Screen.h中定义完类Screen后先导入了Map.h,再在后面放了类函数的实现。Map.h中的一个函数声明中有把Screen::Data作为参数的类型,然后接下来就是其它头文件的导入,以及类函数的实现。我应该怎么做才能不引发语法错误?

我的代码类似下面这样子:

//in file Screen.h
//引入标准库
class Map;
class Screen{
public:
	//定义了一些函数和成员变量
public:
	struct Data{
		//结构体定义
	};
};
#include "Map.h"
//以及引入一些自己编写的头文件
//下面函数实现
Screen::Screen(){
	//...
}
//in file Map.h
//引入标准库
class Screen;
class Map{
public:
	//定义了一些函数和成员变量
public:
	void print(const Screen::Data &data);//就是这里!提示Screen类只有前置声明,不能使用其内部的函数、结构体或成员变量
};
#include "Screen.h"
//以及引入一些自己编写的头文件
//下面是函数实现
void Map::print(const Screen::Data &data){
	//...
}
2023/5/20 10:36
加载中...