C ++小错误:“...不是'class ...'的静态数据成员”

时间:2017-11-27 20:09:56

标签: c++

自从我用C ++编写以来已经有一段时间了,所以我一直在查看一些旧代码,以便开始我的程序。

我在名为“branchsim.hpp”的文件中有以下内容:

#ifndef _BRANCHSIM_HPP
#define _BRANCHSIM_HPP

// some #include statements here

using std::cin;
using std::cout;
// ... some more using statements here

class BranchSim {
public:
    int readMode(&string mode);
};


#endif

我在一个名为branchsim.cpp的文件中有这个:

#include "./branchsim.hpp"

int main(void) {
    string mode;

    return EXIT_SUCCESS;
}

/*
 *  Returns an int representing the branch prediction heuristic to be 
used.
 */
int BranchSim::readMode(&string mode) {
    switch (tolower(mode)) {
        case "at":          // always taken
            return 1;
        case "nt":          // never taken
            return 2;
        case "btfn":        // bkwd taken, fwd not taken
            return 3;
        case "bimodal":     // bimodal
            return 4;
        case "twolevel":    // dynamic two level
            return 5;
        default:
            cout << "Invalid prediction mode entered.\n";
    }

    return 0;
}

我收到以下错误:

./branchsim.cpp:35:24: error: ‘int BranchSim::readMode’ is not a 
static data member of ‘class BranchSim’
 int BranchSim::readMode(&string mode) {
                    ^
./branchsim.cpp:35:33: error: expected primary-expression before 
‘mode’
 int BranchSim::readMode(&string mode) {
                             ^
./branchsim.cpp:35:39: error: expected ‘,’ or ‘;’ before ‘{’ token
 int BranchSim::readMode(&string mode) {
                                   ^
Makefile:16: recipe for target 'branchsim.o' failed
make: *** [branchsim.o] Error 1

我只是想让它编译,所以我可以继续编写程序的其余部分,但是我遇到了问题。

我相信我的语法是正确的..我只是不确定如何解决这些错误。正如我所说,我的C ++有点生疏,所以这很可能是一件非常明显的事情,我很遗憾/遗忘,但任何帮助都会非常感激!

编辑:我只是错放了&amp; (属于字符串后,而不是之前)我很快意识到c ++不允许切换字符串,所以我做了相应的调整。

为琐碎的问题道歉,但感谢您的快速帮助!

0 个答案:

没有答案