我在使用我自己的类的 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/