自从我用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 ++不允许切换字符串,所以我做了相应的调整。
为琐碎的问题道歉,但感谢您的快速帮助!