使用带有对象的矢量会出错
Using vectors with objects error
我已经有一段时间没有做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();
};
好的,首先要注意的是:当您发布错误消息时,请发布编译器给您的完整错误消息。否则,可能没有人能够帮助你。
第二,你的问题的答案:
使用
std::vector<MyClass> allQueue;
在您的main.cpp文件中。做
allQueue.push_back(MyClass(100));
以添加对象。还可以考虑为MyClass实现一个复制构造函数。
将vector
更改为std::vector
。
-
使用
std::vector
,而不仅仅是vector
。 -
运算符
new
返回指向MyClass
的指针,而不是对象本身。你需要制作一个指针向量(vector<MyClass*>
),或者你需要使用像这个一样的MyClass()
构造函数MyClass m(100); allQueue.push_back(m);
或者只是
allQueue.push_back(mMyClass(100));
相关文章:
- 在c++中访问int到类对象的映射时出错
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 按基类对象访问派生类资源时出错
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 在 c++ 的构造函数中分配对象向量时出错
- 从主线程中询问运行对象表 (ROT) 时出错
- 加载共享库时出错:libbsoncxx.so._noabi:无法打开共享对象文件:没有此类文件或目录
- 从 Arduino 中的自定义C++库构造对象时出错
- 在 boost::heap::p riority_queue 中推送结构对象时出错
- 创建 OpenGL 对象期间出错
- 为什么在定义类之前声明类的对象会在友元类中给出错误,而在友元函数中不会出错
- 创建类对象时出错
- 尝试将对象用作类的属性时出错
- 擦除矢量中的对象时出错.如何将移动作业运算符添加到我的类中
- 编译创建 Eigen::ThreadPoolDevice 对象的代码时出错
- 尝试使用构造函数创建对象时出错
- 从模板类初始化对象时出错.参考类模板实例化
- 加载共享库时出错:无法在外部硬件上打开共享对象文件:
- 可变大小的对象可能无法初始化 尽管初始化了,但出错
- 删除时出错:表达式必须是指向完整对象类型的指针