c++ - 尝试使用 std::vector<MyClass>

标签 c++ object vector sdl

我在使用我自己的类的 vector 时遇到问题。我的意图是在每次单击空格键时创建一个新对象。我已经写了一些代码:

类.h

class someClass
{
public:
    short x;
    short y;
    someClass::someClass();
};

类.cpp

someClass::someClass()
{
    x = 0;
    y = 0;
}

主要.cpp

using namepsace std;    
vector<someClass> vMyVector;
(...)
case SDLK_SPACE:
    vMyVector.push_back();
break;

我也试过把那条额外的线放在 SDLK_SPACE 的情况下:

someClass *temp = new someClass(); 
vMyVector.push_back(temp);

但是在这两种情况下,编译器都会返回类似

的错误

error C3867: 'std::vector<_Ty>::push_back': function call missing argument list; use '&std::vector<_Ty>::push_back' to create a pointer to member with [_Ty=someClass]

我已经花了大约一个小时在互联网上搜索一些书籍和阅读各种主题,但都没有用。我把希望寄托在你们身上!

最佳答案

在第一种情况下,您缺少 push_back 的参数。它应该是 SomeClass 的实例,不是指向 SomeClass 的指针,顺便说一句,这就是第二个问题 案例。

编辑: 如果你只想添加一个元素,使用默认构造函数构造,你可以这样做

v.resize (v.size () + 1)

并引用新对象

v.back ()

关于c++ - 尝试使用 std::vector<MyClass>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240492/

相关文章:

c# - 如何在 cpp 可执行文件中嵌入 licence.licx 文件?

r - 测试数据框列是否包含向量的任何元素

c++ - 复合数据结构和摆弄指针

c++ - 如何使 boost::lockfree::queue 动态调整大小

c++ - 正则表达式无法通过 getline() 输入正常工作

c++ - 派生类依赖函数

arrays - 对 MongoDB 集合中的对象数组进行排序

Javascript 数组项被覆盖

javascript - jQuery:检测对象属性更改

C++ - 在基于磁盘的 vector 中管理引用