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++は少し錆びているので、これは私が行方不明/忘れていることは非常に明白かもしれませんが、どんな助けも大いに評価されるでしょう!
EDIT:私は単に&を紛失したい(前の文字列ではなく、後に所属)と私はすぐに、文字列のスイッチを許可していませんC++を実現し、私はそれに応じて調整しました。
些細なご質問にお詫び申し上げますが、早急にお手数ですが!
まず、あなたは '&string'構文で何を言おうとしていましたか?第二に、あなたの最初のエラーメッセージが引用されていると信じるのは難しいです。ヘッダーファイルの '&string'に以前のエラーがあったはずです。 – AnT
それはエラーでした。単純に '&'の後に '文字列'を入れることを意味していました。また、私はC + +を文字列でこれを許可していない忘れても、スイッチを変更する必要があったが、すべて今よくなっています。 –