C++ 错误:请求成员';插入';哪个是非类类型int*??什么';怎么了?
这就是我得到的错误: StatisticsProcessor.cpp:在成员函数“void StatisticsProcessor::loadData(std::string)”中: StatisticsProcessor.cpp:70:16:错误:请求在“((StatisticsProcessor*)this)->StatisticsProcessor::dataArray”中插入成员“insert”,这是非类类型的“Element*{aka int*}” make:[StatisticsProcessor.o]错误1C++ 错误:请求成员';插入';哪个是非类类型int*??什么';怎么了?,c++,stack,ifstream,dynamic-arrays,C++,Stack,Ifstream,Dynamic Arrays,这就是我得到的错误: StatisticsProcessor.cpp:在成员函数“void StatisticsProcessor::loadData(std::string)”中: StatisticsProcessor.cpp:70:16:错误:请求在“((StatisticsProcessor*)this)->StatisticsProcessor::dataArray”中插入成员“insert”,这是非类类型的“Element*{aka int*}” make:[StatisticsPr
这是我代码的一部分:
if(inStream.is_open()){
for(int i = 0;;){
if(!inStream.eof()){
Element line = 0;
if(i > 0){
inStream >> line;
dataArray.insert(line);
}
else{
dataArray = new(nothrow) Element[line];
assert(dataArray != 0);
}
}
else if(inStream.eof()) break;
}
// Close file stream
inStream.close();
}
这是我的插入函数:
void StatisticsProcessor::insert(Element e){
// Increment size
size++;
// Add in new value
dataArray[size-1] = e;
}
元素只是int的typedef,而dataArray的类型是Element*inStream是一个ifstream对象,我试图从文件中读取数字并插入它们
进入我的列表类(本质上是一个整数数组)。我做错了什么???如您所示,
插入
是统计处理器
类的成员函数。如果要调用该函数,语法如下:
x.insert(y);
其中,
x
是类型为StatisticsProcessor
的对象,y
是类型为Element
(int)的对象。相反,您的x
是一个int*
(指向int的指针)。指针没有名为insert
的成员函数,也没有任何成员函数。向我们展示类内dataArray
的声明。你建议我怎么做?@Riptyde4:我建议你读一读a,因为犯这个错误是因为在语言知识上有一个基本的差距。我无法填补这个空白。@Riptyde4将数组更改为std::vector
,并使用push_back
。我正在阅读一篇lol,这是一个我正试图理解的类的作业。我不能用向量我的教授想让我们自己写一份清单class@Riptyde4在这种情况下,将dataArray
的类型改为使用列表类。假设列表接口在某处定义了一个insert
方法。