' CalucateNumbers'缺少异常规范' noexcept'

时间:2018-03-27 15:10:17

标签: c++

我是C ++初学者

我在设置标题类值时遇到了麻烦。

<a href="/path/to/image.svg" download>Export and save</a>

CalucateNumbers::CalucateNumbers() { ResetValues(); } void CalucateNumbers::ResetValues() { firstNumber = 0; secondNumber = 8; } 缺少例外规范CalucateNumber

请帮忙吗?

这是名为noexcept

的C plus plus Code文件
FBullCowGame.cpp

这是名为#include "FBullCowGame.hpp" FBullCowGame::FBullCowGame() { Reset(); } void FBullCowGame::Reset() { CurrentTries = 0; MaxTries = 8; }

的头文件
FBullCowGame.hpp

Here is the MCVE on godbolt

2 个答案:

答案 0 :(得分:6)

当您询问定义是否与标题匹配时,您说“是的确如此”时出错了。它与标题不匹配,因为它甚至不在标题中!

您的 rewind(filepointer);/* this is required to get first char of file */ unsigned char ch1 = fgetc(filePointer); fclose(filePointer); printf("%c", ch1); 未声明自定义构造函数,因此编译器创建了一个默认构造函数。然后尝试创建一个自定义的编译器,并且编译器认为您正在尝试实现默认构造函数(恰好是class FBullCowGame),因此它说“此重新声明与隐式声明不匹配。”< / p>

你真正的问题是你忘了告诉编译器“我将给这个类一个自定义构造函数。”

noexcept

(您的头文件中class FBullCowGame { public: FBullCowGame(); // <----- you forgot this void Reset(); // TODO Make a reset void // Not important.., The important is this ^^ private: int CurrentTries; int MaxTries; }; 后卫的范围也存在问题。)

答案 1 :(得分:2)

这是一个非常误导性的错误消息。问题是类定义没有声明默认构造函数,但源代码尝试实现一个。要解决此问题,请将默认构造函数的声明添加到类定义中。