在以下问题上挣扎太久,需要一点帮助!
尝试从不同的标头访问结构的成员,但记忆对我做错了什么有点模糊! 我似乎记得我需要对 typedef 做一些奇怪的事情?
parseinput.h
#ifndef PARSEINPUT_H
#define PARSEINPUT_H
extern struct pitching_stat_struct pitching_home_player;
#endif
解析输入.cpp
struct pitching_stat_struct
{
char playerID[16] = { ' ' };
char teamID[16] = { ' ' };
unsigned short W = 0;
unsigned short L = 0;
unsigned short G = 0;
} pitching_home_player;
别的.cpp
#include "parseinput.h"
void getStructElement()
{
unsigned short playersW = pitching_home_player.W;
// Results in below errors:
// error C2027: use of undefined type 'pitching_stat_struct
// error C2228: left of '.W' must have class/struct/union
}
感谢您的帮助。
翻译单元具有要使用的类型的对象是不够的。 它还需要知道它是如何定义的。 只包含parseinput.h并没有给出这个定义。 为了做到这一点,你需要有
parseinput.h
#ifndef PARSEINPUT_H
#define PARSEINPUT_H
struct pitching_stat_struct
{
char playerID[16] = { ' ' };
char teamID[16] = { ' ' };
unsigned short W = 0;
unsigned short L = 0;
unsigned short G = 0;
}
extern pitching_stat_struct pitching_home_player;
#endif
解析输入.cpp
#include "parseinput.h"
pitching_stat_struct pitching_home_player;
别的.cpp
#include "parseinput.h"
void getStructElement()
{
unsigned short playersW = pitching_home_player.W;
//...
}