el código anterior me compila y se ejecuta bien pero cuando cambio cuando oculto la implementación de de la interfaz de la clase como aquí:
me aparecen estos errores:
alguien que me ayude por favor!
· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
Código (cpp) [Seleccionar]
// Fig. 3.13: fig03_13.cpp
// Demostración de la clase LibroCalificaciones después de separar
// su interfaz de su implementación.
#include <iostream>
using std::cout;
using std::endl;
#include "LibroCalificaciones.h" // incluye la definición de la clase LibroCalificaciones
// la función main empieza la ejecución del programa
int main()
{
// crea dos objetos LibroCalificaciones
LibroCalificaciones libroCalificaciones1( "CS101 Introduccion a la programacion en C++" );
LibroCalificaciones libroCalificaciones2( "CS102 Estructuras de datos en C++" );
// muestra el valor inicial de courseName para cada LibroCalificaciones
cout << "libroCalificaciones1 creado para el curso: " << libroCalificaciones1.obtenerNombreCurso()
<< "\nlibroCalificaciones2 creado para el curso: " << libroCalificaciones2.obtenerNombreCurso()
<< endl;
return 0; // indica que terminó correctamente
}
luego en otro archivo:
// Fig. 3.12: LibroCalificaciones.cpp
// Definiciones de las funciones miembro de LibroCalificaciones. Este archivo contiene
// implementaciones de las funciones miembro cuyo prototipo está en LibroCalificaciones.h.
#include <iostream>
using std::cout;
using std::endl;
#include "LibroCalificaciones.h" // incluye la definición de la clase LibroCalificaciones
// el constructor inicializa nombreCurso con el objeto string suministrado como argumento
LibroCalificaciones::LibroCalificaciones( string nombre )
{
establecerNombreCurso( nombre ); // llama a la función establecer para inicializar nombreCurso
} // fin del constructor de LibroCalificaciones
// función para establecer el nombre del curso
void LibroCalificaciones::establecerNombreCurso( string nombre )
{
nombreCurso = nombre; // almacena el nombre del curso en el objeto
} // fin de la función establecerNombreCurso
// función para obtener el nombre del curso
string LibroCalificaciones::obtenerNombreCurso()
{
return nombreCurso; // devuelve el nombreCurso del objeto
} // fin de la función obtenerNombreCurso
// muestra un mensaje de bienvenida al usuario de LibroCalificaciones1
void LibroCalificaciones::mostrarMensaje()
{
// llama a obtenerNombreCurso para obtener el nombreCurso
cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso()
<< "!" << endl;
} // fin de la función mostrarMensaje
luego en otro archivo:
// Fig. 3.11: LibroCalificaciones.h
// Definición de la clase LibroCalificaciones. Este archivo presenta la interfaz
// public de LibroCalificaciones sin revelar las implementaciones de sus funciones
// miembro, que están definidas en LibroCalificaciones.cpp.
#include <string> // la clase LibroCalificaciones utiliza la clase string estándar de C++
using std::string;
// definición de la clase LibroCalificaciones
class LibroCalificaciones
{
public:
LibroCalificaciones( string ); // constructor que inicializa a nombreCurso
void establecerNombreCurso( string ); // función que establece el nombre del curso
string obtenerNombreCurso(); // función que obtiene el nombre del curso
void mostrarMensaje(); // función que muestra un mensaje de bienvenida
private:
string nombreCurso; // nombre del curso para este LibroCalificaciones
};
me aparecen estos errores:
CitarC:\Users\levis\AppData\Local\Temp\ccJtBm2S.o fig03_13.cpp:(.text+0x84): undefined reference to `LibroCalificaciones::LibroCalificaciones(std::string)'
C:\Users\levis\AppData\Local\Temp\ccJtBm2S.o fig03_13.cpp:(.text+0xe5): undefined reference to `LibroCalificaciones::LibroCalificaciones(std::string)'
C:\Users\levis\AppData\Local\Temp\ccJtBm2S.o fig03_13.cpp:(.text+0x11a): undefined reference to `LibroCalificaciones::obtenerNombreCurso()'
C:\Users\levis\AppData\Local\Temp\ccJtBm2S.o fig03_13.cpp:(.text+0x134): undefined reference to `LibroCalificaciones::obtenerNombreCurso()'
C:\Users\levis\Downloads\c++\librocali_clasecli_definiclaseinterfaz_implementacion_FALLO\collect2.exe [Error] ld returned 1 exit status
alguien que me ayude por favor!
· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex