我有一个头文件: 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");
任何人都可以帮我解决这个错误吗?
答案 0 :(得分:2)
正如评论者指出的那样,你不能在函数外部的对象上调用函数。您只能声明对象。幸运的是,您可以在同一语句中初始化myV
:
vector<string> myV { "a" };
答案 1 :(得分:2)
C ++不是脚本语言,大多数运行时方法都应该放入函数调用中。
您只能在函数调用之外定义全局变量,函数和类
A::A(int a)
{
vector<string>myV;
myV.push_back("a");
m_a = a;
}