に名前を付けていません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");
誰でもこのエラーで私を助けることができますか?
に名前を付けていません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");
誰でもこのエラーで私を助けることができますか?
コメント者が指摘しているように、関数外のオブジェクトに対して関数を呼び出すことはできません。オブジェクトは宣言することしかできません。幸いにも、あなたが同じ文でmyV
を初期化することができます
vector<string> myV { "a" };
C++ランタイムメソッドのほとんどは、関数呼び出しの中に配置する必要があり、スクリプト言語ではありません。あなたが唯一の機能の外でグローバル変数、関数やクラスを定義することができ
は、あなたが任意の関数の外のコードを実行することはできませんので、解析中に、コンパイラは型として `myV`を扱っている
A::A(int a)
{
vector<string>myV;
myV.push_back("a");
m_a = a;
}
を呼び出します。 – whoan
関数の外にあるものを宣言できますが、それらの関数を呼び出すことはできません(つまり、 'myV'の宣言は問題ありませんが、' push_back'の使用はありません) – Tas