我有此類C++的GetName矢量
class Dados
{
string name;
int valor;
public:
Dados(string n, int v) : name(n), valor(v){};
//~dados();
string GetName(){return name;}
int GetValor(){return valor;}
void SetValor(int x){valor = x;}
}
和這個類,基本上讀取文件,並把該數據轉換成一個矢量:
class FileReader{
vector<Dados> dados;
public:
bool ReadFile(string file) {
dados.empty();
string fnome, ftemp;
int fvalor;
ifstream fich(file);
string linha;
if (fich.is_open())
{
while (fich.peek() != EOF){
getline(fich, linha);
istringstream iss(linha);
//cout << ".";
iss >> fnome;
iss >> ftemp;
iss >> fvalor;
dados.push_back(Dados(fnome,fvalor));
}
fich.close();
return 0;
}
else{
cout << "Ficheiro \""<< file <<"\" nao encontrado!";
return 1;
}
}
int FindOnVector(string fi)
{
int val;
vector<Dados>::const_iterator it;
it = dados.begin();
while (it != dados.end()){
val = it->GetValor();
it++;
}
return val;
}
};
但是在類的FileReader我需要上用於查找名稱的方法,並返回int(valor)。 這次他只是做這個返回值。不是這個搜索的名字。
但val = it->GetValor();
給我這個錯誤在VS 2012:
error C2662: 'Dados::GetValor' : cannot convert 'this' pointer from 'const Dados' to 'Dados &'
someon可以幫助我?
最好成績
感謝您的幫助,解決了問題 –