函数声明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
}