我为提出一个应该有一个简单解决方案的问题而道歉,但它让我疯狂。我检查了所有常见错误:命名空间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'未在此范围内声明。”提前感谢您提供任何帮助。
答案 0 :(得分:3)
video_ptrs
是Video
的成员,使用您刚创建的对象调用它:
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...