c++ - 从不同的标头访问外部结构成员
问题描述
为以下问题苦苦挣扎太久,需要一点帮助!
尝试从不同的标头访问结构的成员,但内存对我做错的事情有点模糊!我似乎记得我需要用 typedef 做一些奇怪的事情?
解析输入.h
#ifndef PARSEINPUT_H
#define PARSEINPUT_H
extern struct pitching_stat_struct pitching_home_player;
#endif
解析输入.cpp
struct pitching_stat_struct
{
char playerID[16] = { '\0' };
char teamID[16] = { '\0' };
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 并没有给出该定义。为了做到这一点,你需要有
解析输入.h
#ifndef PARSEINPUT_H
#define PARSEINPUT_H
struct pitching_stat_struct
{
char playerID[16] = { '\0' };
char teamID[16] = { '\0' };
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;
//...
}
推荐阅读
- flutter - 在 Dart/Flutter 中创建 DatabaseService
- angularjs - 如何在angularJs中获取一个值而不是渲染它
- push-notification - 来自网站的移动设备和桌面设备上的事件通知
- python - 重新连接到服务器 python
- amazon-web-services - 在浏览器中显示 mov 类型的预签名 s3 url
- linux - 如何使用 sed 用文件中的变量替换字符串?
- javascript - 如何在本机反应中将“任何”类型分配给领域模式中的对象属性?
- angular - Angular10 OWL 日期时间预设一个日期和时间
- java - Java gui - JLabel 位置
- flutter - 使用 getX 注销时对空值使用空值检查运算符