如何使用在另一个类中声明的结构
How to use a struct declared in another Class
我已经在头文件Player.h中声明了一个结构,我想在另一个类中使用它,但我无法使它工作。我已经把Player.h列入了另一个类别,但上面写着
错误C2011:"点":"结构"类型重新定义。
我错过了什么?
在Player.h 中
struct Point {
int x, y;
char name[20];
};
class Player
{
public:
Player(void);
~Player(void);
std::vector<Point> rocketVector;
private:
};
您的头文件需要包含保护。
#ifndef MY_HEADER // or some other unique name
#define MY_HEADER
struct Point {
int x, y;
char name[20];
};
class Player
{
public:
Player(void);
~Player(void);
std::vector<Point> rocketVector;
private:
};
#endif
包含防护装置的目的是防止翻译单元中的一个标头被多次包含(直接或间接通过其他标头)。当您说#include "something"
时,预处理器基本上只是将头文件粘贴在指令的位置。如果这种情况发生多次(就像您的情况一样),您将获得同一类的多个定义或头中定义的任何其他定义。
您只需要在头文件的开头添加#pragma once
,或者著名的技巧:
#ifndef __PLAYER_H
#define __PLAYER_H
//content of Player.h
#endif
相关文章:
- 在哪里声明结构运算符重载
- 如何正确转发声明结构"using XXX"?
- 在C++我可以在不在本地声明结构的情况下将结构作为指针传递吗?
- 在 for 循环中声明结构是否合法C++?
- 为什么我们可以创建一个模板类结构,其中包含许多与声明结构时指定的参数不同的参数
- 当声明结构数组时,CPPCHECK停止对整个文件的分析
- C++ - 声明结构和类时不允许使用不完整的类型
- 在声明末尾或 main 中声明结构或类实例之间的区别
- 在模板类中声明结构,未为成员函数定义
- C++ .h 文件中转发声明结构,并在.cpp文件中定义结构
- 如何在C++中声明结构变量
- 在 C 中声明结构的新实例
- 在类内部声明结构
- 为什么可以用相同的名称声明结构和非结构
- 在结构定义内部声明结构的堆栈
- 为什么在声明结构时不能初始化结构中的向量成员?
- 在c++头文件中声明结构体
- 如何声明结构体?
- c++中声明结构体的问题
- 只在库cpp中有定义的前向声明结构