我有一个头文件:a.h

#include <iostream>

class A
{
    int m_a;
    public:
      A(int a);
};


和源文件a.cpp

#include "a.h"
#include <vector>
#include <string>

using namespace std;

vector<string>myV;
myV.push_back("a");

A::A(int a)
{
  m_a = a;
}


我正在使用以下方法在CentOs-7.2上编译上述程序:g ++ a.cpp

在编译上述程序时,出现此错误:

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


任何人都可以帮助我解决这个错误吗?

最佳答案

正如评论者所指出的,您不能在函数外部的对象上调用函数。您只能声明对象。幸运的是,您可以在同一条语句中初始化myV

vector<string> myV { "a" };

09-18 09:37