函数声明 C++ 的编译器错误 [已关闭]

compiler errors with function declaration c++ [closed]

提问人:Kody Puebla 提问时间:11/27/2016 最后编辑:Kody Puebla 更新时间:11/27/2016 访问量:56

问:


6年前关闭。

当我尝试构建程序时,我收到以下编译器错误:

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 '::'

我无法在网上找到与此错误匹配的任何内容,所以我不确定出了什么问题。

这是主要的.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 本机工具命令提示符,并使用该命令进行编译。有什么想法吗?cl /EHsc main.cpp odds_calculator.cpp

C++ visual-studio-2015 编译器错误 语法错误 未解决外部

评论

0赞 qxz 11/27/2016
您能向我们展示您的整个代码,或者更好的是,一个最小的、完整的、可验证的示例吗?
0赞 Kody Puebla 11/27/2016
是的,对不起,在我完成编辑之前不小心发布了这个:p
0赞 Lightness Races in Orbit 11/27/2016
“我收到以下编译器错误”除非这不是编译器错误

答:

-1赞 Persixty 11/27/2016 #1
bool OddsCalculator::is_straight_flush(long long in_play) {
    // code
}

评论

0赞 Kody Puebla 11/27/2016
我想面对手掌哈哈。谢谢。
2赞 Lightness Races in Orbit 11/27/2016
你应该解释你的答案,而不仅仅是把代码扔给别人。