我是C++的初学者
我在设置头类的值时遇到了问题。
CalucateNumbers::CalucateNumbers() {
ResetValues();
}
void CalucateNumbers::ResetValues() {
firstNumber = 0;
secondNumber = 8;
}CalucateNumber缺少异常规范noexcept
帮帮忙好吗?
这是名为FBullCowGame.cpp的C plus plus代码文件
#include "FBullCowGame.hpp"
FBullCowGame::FBullCowGame() {
Reset();
}
void FBullCowGame::Reset() {
CurrentTries = 0;
MaxTries = 8;
}这是名为FBullCowGame.hpp的头文件
#ifndef FBullCowGame_hpp
#define FBullCowGame_hpp
#include <stdio.h>
#include <string>
#endif /* FBullCowGame_hpp */
class FBullCowGame {
public:
void Reset(); // TODO Make a reset void
// Not important.., The important is this ^^
private:
int CurrentTries;
int MaxTries;
};发布于 2018-03-28 00:23:10
当你被问到定义是否与标题匹配时,你回答“是的,它是匹配的”,这是错误的。它与标题不匹配,因为它甚至不存在于标题中!
您的class FBullCowGame没有声明一个自定义构造函数,因此编译器创建了一个默认的构造函数。然后,您尝试创建一个自定义的构造函数,编译器认为您正在尝试实现默认构造函数(恰好是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;
};(头文件中#ifdef保护的作用域也有问题。)
发布于 2018-03-28 00:23:02
这是一个非常误导人的错误信息。问题在于,类定义没有声明默认构造函数,但源代码试图实现一个构造函数。若要解决此问题,请向类定义中添加默认构造函数的声明。
https://stackoverflow.com/questions/49516548
复制相似问题