自从我完成C ++以来已经有一段时间了,所以我在这里遇到了一些麻烦。我在主文件中声明allQueue
的行上收到此错误。我显然已经删除了许多我认为不需要的代码,如果你需要更多信息,请告诉我。
使用
进行编译g++ mainFile.cpp MyClass.cpp extraObjectFile.o -o mainFile
生成:
error: expected constructor, destructor, or type conversion before ‘<’ token
主文件
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <iostream>
#include "MyClass.h"
vector<MyClass> allQueue;
int main()
{
allQueue.push_back(new MyClass(100));
}
MyClass.cpp
#include "MyClass.h"
MyClass::MyClass(int start_priority)
{
priority = start_priority;
}
int MyClass::getPriority()
{
return priority;
}
MyClass.h
class MyClass
{
int priority;
public:
MyClass(int);
int getPriority();
};
答案 0 :(得分:6)
好的,首先要注意的是:当您发布错误消息时,请发布编译器提供给您的完整错误消息。否则,没有人可以帮助你。
其次,你的问题的答案:
使用
std::vector<MyClass> allQueue;
你的main.cpp文件中的。做一个
allQueue.push_back(MyClass(100));
添加对象。考虑为MyClass实现一个复制构造函数。
答案 1 :(得分:1)
将vector
更改为std::vector
。
答案 2 :(得分:1)
使用std::vector
,而不仅仅是vector
。
运算符new
返回指向MyClass
的指针,而不是对象本身。你需要制作一个指针向量(vector<MyClass*>
),或者你需要像这样使用MyClass()
构造函数
MyClass m(100);
allQueue.push_back(m);
或者只是那个
allQueue.push_back(mMyClass(100));