帮助!首先,抱歉我的英语不好......但是,我的思绪被封锁了! 我已经使用地图创建了一个课程,我做了但我无法展示,我可以插入,但它没有显示任何内容。
看看:
class Cliente{
private:
map <string, string> clientes;
map <string, string> autos;
map <string, string> tipcolor;
map <string, string> numeros;
friend class AutoServicio;
class AutoServicio{
private:
int i;
public:
AutoServicio();
void MostrarClientes();
void AgregarCliente();
};
AutoServicio::AutoServicio(){
i=0;
}
void AutoServicio::AgregarCliente(){
string nombre, telefono, marca, modelo, tipo, color, placa, kilometros;
map <string,string> clientes;
cout << "Nombre: ";
cin >> nombre;
cout << "Teléfono: ";
cin >> telefono;
clientes.insert(pair <string, string>(nombre, telefono));
clientes.insert(make_pair(nombre, telefono));
map <string, string> autos;
cout << "Marca: ";
cin >> marca;
cout << "Modelo: ";
cin >> modelo;
autos.insert(pair <string, string>(marca, modelo));
autos.insert(make_pair(marca, modelo));
map <string, string> tipcolor;
cout << "Tipo: ";
cin >> tipo;
cout << "Color: ";
cin >> color;
tipcolor.insert(pair <string, string>(tipo, color));
tipcolor.insert(make_pair(tipo, color));
map <string, string> numeros;
cout << "Placa: ";
cin >> placa;
cout << "Kilómetros: ";
cin >> kilometros;
numeros.insert(pair <string, string>(placa, kilometros));
numeros.insert(make_pair(placa, kilometros));
cout << "\n";
}
void AutoServicio::MostrarClientes(){ // **HERE IS MY PROBLEM! IT DOESN'T SHOW**
map <string,string> clientes;
map<string, string>::iterator p = clientes.begin();
cout << "Datos del cliente: ";
while (p != clientes.end() ){
cout << "\nNombre: " << p->first <<"\nTelefono: "<< p->second << endl;
p++;
}
map <string,string> autos;
map<string, string>::iterator p2 = autos.begin();
cout << "\nDatos del auto: ";
while (p2 != autos.end() ){
cout << "\nMarca: " << p2->first <<"\nModelo: "<< p2->second << endl;
p2++;
}
map <string,string> tipcolor;
map<string, string>::iterator p3 = tipcolor.begin();
while (p3 != tipcolor.end() ){
cout << "\nTipo: " << p3->first <<"\nColor: "<< p3->second << endl;
p3++;
}
map <string,string> numeros;
map<string, string>::iterator p4 = numeros.begin();
while (p4 != numeros.end() ){
cout << "\nPlaca: " << p4->first <<"\nKilómetros: "<< p4->second << endl;
p4++;
}
}
感谢!!!
答案 0 :(得分:0)
在AutoServicio::AgregarCliente()
内删除此内容:
map <string,string> clientes;
并删除此
map <string, string> autos;
并删除此
map <string, string> tipcolor;
并删除此
map <string, string> numeros;
C ++将允许您使用相同名称的不同变量。因为你有一个名为numeros
(等)的局部变量,当你在该函数中说numeros
时,你正在谈论局部变量,而不是成员变量,即使你想要成员变量