2017-09-26 10 views
0

に名前を付けていませんCentOS-7.2 using:g ++ a.cpp'MYVは、' 私は、ヘッダファイルを持っているタイプ

上記prograをコンパイルするとmこのエラーが発生しました:

a.cpp:8:1: error: ‘myV’ does not name a type 
myV.push_back("a"); 

誰でもこのエラーで私を助けることができますか?

+2

を呼び出します。 – whoan

+0

関数の外にあるものを宣言できますが、それらの関数を呼び出すことはできません(つまり、 'myV'の宣言は問題ありませんが、' push_back'の使用はありません) – Tas

答えて

2

コメント者が指摘しているように、関数外のオブジェクトに対して関数を呼び出すことはできません。オブジェクトは宣言することしかできません。幸いにも、あなたが同じ文でmyVを初期化することができます

vector<string> myV { "a" }; 
2

C++ランタイムメソッドのほとんどは、関数呼び出しの中に配置する必要があり、スクリプト言語ではありません。あなたが唯一の機能の外でグローバル変数、関数やクラスを定義することができ

は、あなたが任意の関数の外のコードを実行することはできませんので、解析中に、コンパイラは型として `myV`を扱っている

A::A(int a) 
{ 
    vector<string>myV; 
    myV.push_back("a"); 
    m_a = a; 
} 
関連する問題