'myV'没有命名类型

时间:2017-09-26 04:40:05

标签: c++ oop g++

我有一个头文件: 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");

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

2 个答案:

答案 0 :(得分:2)

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

vector<string> myV { "a" };

答案 1 :(得分:2)

C ++不是脚本语言,大多数运行时方法都应该放入函数调用中。

您只能在函数调用之外定义全局变量,函数和类

A::A(int a)
{
  vector<string>myV;
  myV.push_back("a");
  m_a = a;
}