从不同的标头访问外部结构成员

  • 本文关键字:访问 外部 结构 成员 c++
  • 更新时间 :
  • 英文 :


在以下问题上挣扎太久,需要一点帮助!

尝试从不同的标头访问结构的成员,但记忆对我做错了什么有点模糊! 我似乎记得我需要对 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;
    //...
}

最新更新