clase1.h
------------
Código:
clase1.cpp#ifndef CLASE1_H #define CLASE1_H #include<string> using std::string; class clase1//clase abstracta { public: clase1(string); virtual ~clase1(); void setMensaje(string); string getMensaje(); virtual string imprimirMensaje(); private: string mensaje; }; #endif //CLASE1_H
-----------------
Código:
clase2.h#include<iostream> using std::cout; using std::cin; using std::endl; #include<iomanip> using std::setw; #include"clase1.h" clase1::clase1(string msj) { setMensaje(msj); } void clase1::setMensaje(string msj) { mensaje = msj; } string clase1::getMensaje() { return mensaje; } string clase1::imprimirMensaje() { cout << "El mensaje es: \n" << setw(25) << getMensaje() << "objeto de: clase1" << endl; } clase1::~clase1() { }
---------------------
Código:
clase2.cpp#ifndef CLASE2_H #define CLASE2_H #include<string> using std::string; #include"clase1.h" class clase2 : public clase1 { public: clase2(string); virtual ~clase2(); string imprimirMensaje(); }; #endif //CLASE2_H
--------------------
Código:
#include<iostream> using std::cout; using std::cin; using std::endl; #include<iomanip> using std::setw; #include"clase2.h" clase2::clase2(string msj) : clase1(msj) { } string clase2::imprimirMensaje() { cout << "El mensaje es: \n" << setw(25) << getMensaje() << "objeto de: clase2" << endl; } clase2::~clase2() { }
y finalmente el programa donde creo esta el error:
programa.cpp
--------------------------
Código:
Aclaro este programa es a modo de aprendizaje, en si solo muestra un mensaje, si alguien me puede indicar donde y como corregir el error se lo agradecería mucho, Saludos!! #include"clase2.h" #include<iostream> using std::cin; using std::cout; int main() { clase1 *sistema1Ptr = 0; clase2 *sistema2Ptr = 0; clase1 sistema1("HOLA"); sistema1Ptr = &sistema1; sistema1Ptr->imprimirMensaje(); //sistema1Ptr = 0; clase2 sistema2("HOLA2"); sistema1Ptr = &sistema2; sistema1Ptr->imprimirMensaje(); cin.get(); return 0; }