我有一個類,它有一個擁有n個集合的向量成員。我想通過公共成員函數訪問此成員,將項目插入到集合中並查找集合中的項目。但是編譯時出錯:引用非靜態成員函數必須調用。C++是我引用一個函數或數據成員? (必須調用非靜態成員函數引用)
但我真的很困惑,因爲我不認爲我引用了一個成員函數,我想我試圖訪問一個向量成員。
我在做什麼錯?
#include <vector>
#include <set>
#include <iostream>
class Foo {
public:
std::vector <std::set<int>> entities(int x);
int find(int x, int y);
void insert(int x, int y);
Foo(int x);
};
Foo::Foo(int x) {
std::vector <std::set<int>> entities(x);
};
void Foo::insert(int x, int y) {
entities[x].insert(y); // << This causes error
};
int Foo::find(int x, int y) {
std::set<int>::iterator iter = entities[x].find(y); // << This causes error
int found;
if (iter != entities[x].end()) { // << This causes error
found = *iter;
}
return found;
};
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
ö你的錯誤是什麼? –
最好提供一個MCVE(請參閱幫助)。使我們更容易查明問題。 –
「entries」和「entities」是同一個東西還是兩個不同的東西? –