20180906 发表于 2018-9-27 22:11:01

容器vector不能放在类里面吗?

本帖最后由 20180906 于 2018-9-27 22:11 编辑

为什么把vector放在类里面就不能用了?

主程序test.cpp 代码如下:#include <iostream>
#include "Virtual.h"
#include "virtualImpl.h"
int main()
{
        Virtual * v = new VirtualImpl();
        v->fun();
        return 0;
}父类Virtual.h 代码如下:#ifndef VIRTUAL_H
#define VIRTUAL_H
#include <vector>
class Virtual
{
private:
        int a;
        vector<int> aa;//加了这一句之后代码编译不通过,不加之前可以运行
public:
        virtual void fun()=0;
};

#endif子类VirtualImpl.h 代码如下:
#ifndef VIRTUALIMPL_H
#define VIRTUALIMPL_H
#include <iostream>
#include "virtual.h"
using namespace std;


class VirtualImpl:public Virtual
{
public:
        void fun(){cout << a<< endl;cout << "123" << endl;}
};

#endif这就是整个项目了。
然后编译不过的 报错信息如下:

--------------------Configuration: test - Win32 Debug--------------------
Compiling...
test.cpp
f:\microsoft visual studio\myprojects\test\virtual.h(8) : error C2143: syntax error : missing ';' before '<'
f:\microsoft visual studio\myprojects\test\virtual.h(8) : error C2501: 'vector' : missing storage-class or type specifiers
f:\microsoft visual studio\myprojects\test\virtual.h(8) : error C2059: syntax error : '<'
f:\microsoft visual studio\myprojects\test\virtual.h(8) : error C2238: unexpected token(s) preceding ';'
执行 cl.exe 时出错.

test.exe - 1 error(s), 0 warning(s)

求大佬帮帮看看,告诉我这是什么情况?怎么解决呀??

人造人 发表于 2018-9-27 22:50:06

std::vector<int> aa;

vector在std空间

Krant5 发表于 2018-9-30 14:16:02

using namespace std?? std::vector

20180906 发表于 2018-10-1 23:14:40

这样呀,我先试试哈
页: [1]
查看完整版本: 容器vector不能放在类里面吗?