结构错误"uninitialized reference member"
struct error "uninitialized reference member"
im是noob,尤其是在c++中。
我在使用要在某些函数中使用的结构时遇到了一些问题。
我在这里查看了关于Header文件和.cpp中的结构的其他答案,但并没有真正让它发挥作用。
my.h文件:
namespace game {
class CPlayer{
struct GameData{
int mBoard[8][8];
CBoard &pBoard;
};
public:
CMove Play(const CBoard &pBoard,const CDeadline &pDue);
private:
int GainsFromMoves(struct GameData gameData);
等等。。。。。
然后在我的.cc文件中,我试图使用以下数据:
CMove CPlayer::Play(const CBoard &pBoard,const CDeadline &pDue)
{
GameData gameData;
gameData.pBoard = pBoard;
等等。。。
在我试图声明GameData的地方,我得到了一个错误uninitialized reference member in ‘struct game::CPlayer::GameData’
后来尝试使用GainsFromMoves函数时,我也遇到了一些错误。
int GainsFromMoves(GameData gameData){
int test = 0;
return test;
}
error: Multiple markers at this line
- expected ‘,’ or ‘;’ before ‘{’ token
- ‘GameData’ was not declared in this
scope
我意识到我可能犯了一些非常愚蠢的错误,但是,如果能得到一些指导,我会非常高兴。
好的,首先,您需要CMove
、CBoard
和CDeadline
的声明。我添加了一些伪代码来修复其他问题:
namespace game {
struct CBoard {};
struct CDeadline {};
struct CMove {};
...
然后,您的结构体CPlayer::GameData
需要初始化它的CBoard
引用,该引用应该是const
:
class CPlayer{
struct GameData
{
GameData(const CBoard& board) : pBoard(board) {}
int mBoard[8][8];
const CBoard &pBoard;
};
public:
CMove Play(const CBoard &pBoard,const CDeadline &pDue);
private:
int GainsFromMoves(struct GameData gameData);
};
接下来,在.cc
文件中,定义成员函数时需要名称空间和类名:
namespace game
{
CMove CPlayer::Play(const CBoard &pBoard,const CDeadline &pDue)
{
GameData gameData(pBoard);
return CMove();
}
int CPlayer::GainsFromMoves(GameData gameData){
int test = 0;
return test;
}
} // namespace game
这消除了错误,至少有了这个简单的主:
int main()
{
game::CBoard b;
game::CDeadline d;
game::CPlayer p;
p.Play(b, d);
}
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- 当两个成员位于同一类中时出错"a nonstatic member reference must be relative to a specific object"
- 这是什么意思:"member reference type 'Human *' is a pointer; did you mean to use '->'?"
- 如何解决访问不同功能的"nonstatic member reference must be relative to a specific object"
- 在这种情况下如何解决"Reference to non-static member function must be called"?
- 结构错误"uninitialized reference member"
- 为什么一个文件中没有错误,另一个文件中没有错误 - "Non Static Member Reference mush be relative to specific object"
- 不断收到错误"member reference base type 'string [1000]' is not a structure or union"不知道如何解决?
- "error : a nonstatic member reference must be relative to a specific object"是什么意思?
- C++ "Error: a nonstatic member reference must be relative to a specific object"
- "There is no "reference-to-member" type in C + +",std::bind 和 boost::bind 在同一条船上
- 实现观察者模式的问题:"Member reference base type ________ is not a structure or union"
- 在优先级队列上调用推送时出现错误"reference to non-static member function must be called"