【发布时间】:2018-04-23 12:48:50
【问题描述】:
我对 C++ 向量有一个小问题。 在我的 .H 文件中,我有
class MyClass{
private:
std::vector<myObject> test;
public:
MyClass();
add(myObject object);
}
在我的 .CPP 文件中
MyClass::MyClass(){
std::vector<myObject> test;
}
MyClass::add(myObject object){
//here is the problem. Netbeans does even giving me quick cast this method i need to write it myself and it throws an error.
test.push_back(object);
}
我正在使用 NetBeans 8,它显示“无法解析标识符 push_back,我不知道为什么。我对 C++ 很陌生,并且做了一些研究,但似乎找不到答案。 我的目标是拥有 .H 文件并在 .CPP 中初始化向量,然后我希望有单独的函数,例如 add 将我的对象推送到包含向量的此类。类似于列表的东西,您可以在其中添加对象。
感谢您的帮助。
编辑: 是的,我在顶部包含矢量。
编辑: 就是代码
#include <vector>
class MyClass{
private:
int a;
std::vector<int> test;
public:
MyClass();
void add(int n);
};
MyClass::MyClass(){
}
void MyClass::add(int m){
//unable to resolve identifier push_back
test.push_back(m);
}
int main() {
MyClass a();
//request for member add in a which is of non class type
a.add(1);
}
【问题讨论】:
-
不是你问的,但构造函数创建了一个额外的本地向量
test并立即将其丢弃。这和类成员test不一样。 -
代码有很多问题。发布一个可验证的示例。
-
请编辑您的问题以包含minimal reproducible example。这是完整的错误信息吗?
-
提供minimal reproducible example,此代码太不完整,无法诊断。
标签: c++ c++11 netbeans-8