Мой учитель попросил класс исправить ошибку в этой программе. На самом деле это кажется дрянной программой; Я просто набрал его точно, как он находится на листе, и получил эту ошибку:C++ Устранение программных упражнений
Ну теперь я только что изменил некоторые вещи, но получаю это исключение во время выполнения: исключение Microsoft C++: [rethrow] в ячейке памяти 0x00000000. .
код теперь так: (переменная AN имена классов теперь на испанском языке, извините за inconviniences)
#include <iostream>
#include <exception>
#include <stack>
using namespace std;
class EPilaVacia : public exception{
public:
const char* what() const throw(){
return "Error: Pila Vacía";
}
};
template <class T, int max=100>
class Pila{
private:
stack<T*> *pila;
int cont;
public:
Pila() : cont(0){
pila=new stack<T*>();
}
virtual void apilar(T* pt){
if(cont<max){
pila->push(pt); //respuesta 2
}
}
virtual void apilar(T t){
if(cont<max){
pila->push(&t); //respuesta 3
}
}
T tope() const throw (EPilaVacia){
if(cont>0){
pila->top(); //respuesta 4
}else{
throw ; //respuesta 5
}
}
T& desapilar() throw (EPilaVacia){
if(cont>0){
pila->pop(); //respuesta 6
}else{
throw ; //respuesta 7
}
}
int size() const{
return pila->size();
}
};
class Figura{
public:
virtual void print(){
cout<< "FIGURA" <<endl;
}
};
class Circulo : public Figura{
public:
void print(){
cout<<"CIRCULO"<<endl;
}
};
class Triangulo : public Figura{
public:
void print(){
cout<<"TRIANGULO"<<endl;
}
};
int main(){
Pila<Figura*> *pfiguras= new Pila<Figura*>();
pfiguras->apilar(new Circulo());
pfiguras->apilar(new Triangulo());
Pila<Figura*> pfiguras2(*pfiguras);
pfiguras->tope()->print();
pfiguras->desapilar();
pfiguras->tope()->print();
pfiguras->desapilar();
pfiguras2.tope()->print();
system("Pause");
return 0;
}
Я вижу одну ошибку: вызов деструктора без уважительной причины. Кроме того, ваш учитель не должен говорить вам использовать 'system (« PAUSE »);'. – chris
Да, действительно, система («пауза») появилась в качестве одной из вещей, которые нам нужно исправить. – dlvx
Была ли это домашняя запись предыдущего студента? : -/(Я согласен с вашей «дерьмовой» оценкой.) – ildjarn