'vector'未在此范围内声明

时间:2016-02-21 17:39:48

标签: c++ stdvector

我为提出一个应该有一个简单解决方案的问题而道歉,但它让我疯狂。我检查了所有常见错误:命名空间std,拼写,包含向量等。下面是我的video.h文件的缩写代码。

#include <iostream>
#include <string>
#include <new>
#include <vector>

using namespace std;

class Video
{
    public:
        Video(string, string, string, float, int);
        vector<Video*> video_ptrs;
        void print();
};

这是我的main.cpp的代码

#include "video.h"

using namespace std;

int main()
{
    ...

    Video* temp_here = new Video(title, url, comment, length, rating);
    video_ptrs.push_back(temp_here);

return 0;
}

返回的错误显示“'video_ptrs'未在此范围内声明。”提前感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:3)

video_ptrsVideo的成员,使用您刚创建的对象调用它:

Video* temp_here = new Video(title, url, comment, length, rating);
temp_here->video_ptrs.push_back(temp_here);

这会向同一个对象的temp_here添加指针vector,但我不确定这是否是预期的。

答案 1 :(得分:0)

video_ptrs确实没有在main中声明。你应该使用

temp_here->video_ptrs...