5

私はこれで立ち往生しています、私の先生は何が起こっているのかさえ知りません。誰かが私を助けてくれれば、それは大歓迎です。

Line 構造体のヘッダー ファイルで item を宣言しました。ただし、Line::display() メソッドで呼び出すと、変数がスコープで宣言されていないというエラーが表示されます。先生や仲間に教えましたが、誰も解決策を知らないようです。

これが私の.hです:

//Line.h
#define MAX_CHARS 40
struct Line {
    public:
    bool set(int n, const char* str);
    void display() const;

    private:
    char item[MAX_CHARS];
    int no;
    };

そして、これが私の .cpp ファイルです。

// Line.cpp
#include "Line.h"
#include <iostream>
using namespace std;

#define MAX_CHARS 40

void Line::display() const {
    cout << no << ' ' << item << endl;
}

これに関するヘルプは素晴らしいです。前もって感謝します。

4

2 に答える 2

6

これが実際のコードである場合、おそらく別の場所からヘッダーを取得しています。試す:

#include "C:\\fullPathToHeader\\Line.h"
#include <iostream>
using namespace std;

void Line::display() const {
    cout << no << ' ' << item << endl;
}

また:

  • ファイルで再定義MAX_CHARSしないでください。cpp
  • ヘッダーにインクルード ガードを使用します。
于 2012-06-05T15:38:10.483 に答える