Problemas con los metodos virtuales
Publicado por esr (1 intervención) el 19/02/2005 14:16:40
Hola, estoi programando un codigo de c++ con clases heredadas y metodos virtuales y al hacer un buffer de un puntero padre apuntando al hijo , cunado intento acceder a uno de los metodos virtuales me da un error en la proteccion de memoria.utilizo visual c++ y borlan c++ 4.5 y el codigo es este:
#include <iostream.h>
class padre{
int x;
public:
padre(){
x=0;
}
virtual void imprimir(){ cout << \"Padre \"<< x << \"\\n\";}
void intro(int c){
x=c;
cout << x;
}
};
class hijo:public padre{
int z;
public:
hijo(){
z=0;
}
void imprimir(){
padre::imprimir();
cout << \"Hijo \" << z <<\"\\n\";
}
};
void main(){
hijo *h;
padre *p;
h=new hijo[2];
p=new hijo[2];
p=h;
(p+1)->intro(2);
(p+1)->imprimir(); //FALLA AQUI
}
#include <iostream.h>
class padre{
int x;
public:
padre(){
x=0;
}
virtual void imprimir(){ cout << \"Padre \"<< x << \"\\n\";}
void intro(int c){
x=c;
cout << x;
}
};
class hijo:public padre{
int z;
public:
hijo(){
z=0;
}
void imprimir(){
padre::imprimir();
cout << \"Hijo \" << z <<\"\\n\";
}
};
void main(){
hijo *h;
padre *p;
h=new hijo[2];
p=new hijo[2];
p=h;
(p+1)->intro(2);
(p+1)->imprimir(); //FALLA AQUI
}
Valora esta pregunta


0