1

私はクラス(コードではなく学校)用にC++で簡単なクラスを書いています。私はC++の経験が少しありますが、しばらく経ちましたので、忘れたものを再学習し、多くの新しい構文を学習しています(Javaの経験がはるかに豊富です)。コードは次のとおりです。

#include <iostream>
#include <string>

using namespace std;
class Project112
{
private:
    string romanNumeral;
    int decimalForm;
public:
    Project112()
    {
        romanNumeral = "";      
        decimalForm = 0;
    }
    int getDecimal()
    {
        return decimalForm;
    }
};

そしてここにドライバーがあります:

include cstdlib
include <iostream>

using namespace std;
int main() 
{
    Project112 x;
    int value2 = x.getDecimal();
    return 0;
}

これはより大きなプログラムの一部ですが、これが問題の原因であるため、これに簡略化しました。プログラムを実行しようとするたびに、次のエラーが発生します。

main.cpp:10: error: 'Project112' was not declared in this scope
main.cpp:10: error: expected `;' before 'x'
main.cpp:14: error: 'x' was not declared in this scope

誰かが問題を説明できますか?前もって感謝します。

4

1 に答える 1

5
#include "Project112.h"

メインの上にそれを追加します。ヘッダーファイルをインクルードするのを忘れました。と:

using namespace std;

ヘッダーファイルではそれを行わないでください。stdこれにより、名前空間からヘッダーを含むファイルのグローバル名前空間にすべてがインポートされます。ヘッダーの型を完全に修飾するだけです。つまり、、std::stringおよび大規模なプロジェクトの実装ファイルでもそれを回避します(ただしusing std::string、実装ファイルのIMOは大丈夫です)。

于 2012-06-27T02:54:25.973 に答える