函数声明c++的编译器错误
compiler errors with function declaration c++
当我尝试构建我的程序时出现以下编译器错误:
main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall OddsCalculator::is_straight_flush(__int64)" (?is_straight_flush@OddsCalculator@@QAE_N_J@Z) referenced in function _main
我认为这是一个作用域问题,因为我没有将 "OddsCalculator::" 放在函数前面。但是,当我去修复它时,出现了这个错误:
odds_calculator.cpp(568): error C2589: 'bool': illegal token on right side of '::'
我无法在网上找到与此错误匹配的任何内容,所以我不确定出了什么问题。
这是main.cpp:
#include <iostream>
#include <string>
#include "odds_calculator.h"
int main() {
OddsCalculator calc;
// hand: KH QH table: AH JH TH 2D 6S
std::cout << calc.is_straight_flush(0x7c201000) << std::endl;
}
这就是 odds_calculator.h 中函数的样子:
#ifndef ODDS_CALCULATOR_H
#define ODDS_CALCULATOR_H
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
class OddsCalculator {
public:
// other functions
bool is_straight_flush(long long in_play);
};
#endif
这是 odds_calculator.cpp 中的函数:
#include "odds_calculator.h"
OddsCalculator::bool is_straight_flush(long long in_play) {
// code
}
我正在使用 VS2015 x86 Native Tools 命令提示符,我使用命令 cl /EHsc main.cpp odds_calculator.cpp
进行编译。有什么想法吗?
bool OddsCalculator::is_straight_flush(long long in_play) {
// code
}
当我尝试构建我的程序时出现以下编译器错误:
main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall OddsCalculator::is_straight_flush(__int64)" (?is_straight_flush@OddsCalculator@@QAE_N_J@Z) referenced in function _main
我认为这是一个作用域问题,因为我没有将 "OddsCalculator::" 放在函数前面。但是,当我去修复它时,出现了这个错误:
odds_calculator.cpp(568): error C2589: 'bool': illegal token on right side of '::'
我无法在网上找到与此错误匹配的任何内容,所以我不确定出了什么问题。
这是main.cpp:
#include <iostream>
#include <string>
#include "odds_calculator.h"
int main() {
OddsCalculator calc;
// hand: KH QH table: AH JH TH 2D 6S
std::cout << calc.is_straight_flush(0x7c201000) << std::endl;
}
这就是 odds_calculator.h 中函数的样子:
#ifndef ODDS_CALCULATOR_H
#define ODDS_CALCULATOR_H
#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
class OddsCalculator {
public:
// other functions
bool is_straight_flush(long long in_play);
};
#endif
这是 odds_calculator.cpp 中的函数:
#include "odds_calculator.h"
OddsCalculator::bool is_straight_flush(long long in_play) {
// code
}
我正在使用 VS2015 x86 Native Tools 命令提示符,我使用命令 cl /EHsc main.cpp odds_calculator.cpp
进行编译。有什么想法吗?
bool OddsCalculator::is_straight_flush(long long in_play) {
// code
}