我是C ++初学者
我在设置标题类值时遇到了麻烦。
<a href="/path/to/image.svg" download>Export and save</a>
CalucateNumbers::CalucateNumbers() {
ResetValues();
}
void CalucateNumbers::ResetValues() {
firstNumber = 0;
secondNumber = 8;
}
缺少例外规范CalucateNumber
请帮忙吗?
这是名为noexcept
FBullCowGame.cpp
这是名为#include "FBullCowGame.hpp"
FBullCowGame::FBullCowGame() {
Reset();
}
void FBullCowGame::Reset() {
CurrentTries = 0;
MaxTries = 8;
}
FBullCowGame.hpp
答案 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)
这是一个非常误导性的错误消息。问题是类定义没有声明默认构造函数,但源代码尝试实现一个。要解决此问题,请将默认构造函数的声明添加到类定义中。