1

「BarOperations.h」で

#include "Bar.h"
#include "Piv.h"
#include <string>
#include <vector>
...
extern std::vector<Bar> bars;
...

「Bar.h」で

class Bar {...};
...

「main.cpp」内

vector<Bar> bars;
...

しかし、次のエラーを受け取りました。

構文エラー: ";" がありません 識別子「bars」の前

「extern」の使用法に慣れていません。誰か説明を手伝ってもらえますか? 「extern」を使用して、「BarOperations.h」でmain.cppで定義された変数「bars」を使用したい。

4

2 に答える 2

4

externは、これがプログラム内の別の場所で定義された外部リンケージを持つ変数の純粋な宣言 (定義ではない) であることを意味します。変数を使用する場合、プログラムのどこかに定義が 1 つだけ存在する必要があります。それはまったく同じですが、extern.

しかし、それはエラーとは関係ありません。コンパイラが を認識していないようです。std::vectorおそらく が含まれていないためです<vector>

于 2013-08-01T13:03:40.850 に答える
0

同じ問題がありました。でも、うっかり書いてなかったせいで

using namespace std;

#include <...>問題が解決した後にこれを追加した後。

于 2020-05-25T14:25:03.323 に答える