我在标题中发现了错误,这是在我的程序中,它是一个带有所有方法或函数的静态队列,这个错误在下面的函数中。
void Cola::queve(TIPO_DATO datos){
if(cola1.vacia()){
final = (final+1)%TAM;
datos[final] = datos;
}else{
cout<<"No hay espacios en la cola"<<endl;
}
}
不管怎样,我留下其余的代码以备不时之需,我希望你能回答,谢谢。
#include <iostream>
#include <stdlib.h>
using namespace std;
#define TAM 10
#define TIPO_DATO int
void menu();
class Cola{
private:
TIPO_DATO datos[TAM];
int frente;
int final;
public:
void inicializa();
bool vacia();
bool llena();
TIPO_DATO front();
void queve(TIPO_DATO datos);
void deque();
void imprimir();
void anular();
};
int main(){
menu();
return 0;
}
Cola cola1;
void menu(){
int opc;
int a;
cola1.inicializa();
cout<<"t t ***** MENU PRINCIPAL *****"<<endl;
cout<<"Selecciona la opcion deseeada"<<endl;
cout<<"1. Vacia"<<endl;
cout<<"2. Llena"<<endl;
cout<<"3. Front"<<endl;
cout<<"4. Encolar"<<endl;
cout<<"5. Deseencolar"<<endl;
cout<<"6. Imprimir"<<endl;
cout<<"7. Anular"<<endl;
cout<<"8. Salir"<<endl;
cin>>opc;
cout<<endl;
switch(opc){
case 1: cola1.vacia();
break;
case 2:
break;
case 3: cout<<"cola1.front()"<<endl;
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7: cola1.anular();
break;
case 8:
break;
}
}
//Prototipos de la cola
void Cola::inicializa(){
frente = 0;
final = TAM-1;
}
bool Cola::vacia(){
if(frente == 0 && final == TAM-1){
return true;
cout<<endl;
cout<<"La cola se encuentra vacia"<<endl;
}else{
return false;
cout<<endl;
cout<<"La cola no esta vacia"<<endl;
}
system("PAUSE");
menu();
}
bool Cola::llena(){
}
void Cola::queve(TIPO_DATO datos){
if(cola1.vacia()){
final = (final+1)%TAM;
datos[final] = datos;
}else{
cout<<"No hay espacios en la cola"<<endl;
}
}
void Cola::deque(){
}
TIPO_DATO Cola::front(){
if(cola1.vacia()){
return datos[frente];
}
else{
cout<<"Error"<<endl;
}
}
void Cola::imprimir(){
}
void Cola::anular(){
frente = 0;
final = TAM-1;
}
函数参数datos
隐藏同名的成员变量,任一
-
使用不同的名称:
void Cola::queve(int new_datos){ if(cola1.vacia()){ final = (final+1)%TAM; datos[final] = new_datos; }else{ cout<<"No hay espacios en la cola"<<endl; } }
-
或将
this->
用于隐藏成员变量:void Cola::queve(int datos){ if(cola1.vacia()){ final = (final+1)%TAM; this->datos[final] = datos; }else{ cout<<"No hay espacios en la cola"<<endl; } }