Éste es mi primer mensaje en este foro (sí, ya leí las reglas y normas del foro). Siempre me gustó el tema de la informática y quería adentrarme en el tema del hacking, y como no entendía mucho, pensé que una buena forma sería empezar primero por aprender un lenguaje de programación, por lo que decidí aprender C++.
Empece a leer el libro "C++: Como programar" de Deitel. Me resulto todo bastante fácil hasta que me encontré con un problema. En un ejercicio, me pide que cree un archivo de encabezado con una clase, y me recomienda que es mejor definir las funciones miembro de dicha clase en un archivo de código de fuente separado. Por lo que me quedarían dos archivos:
LibroCalificaciones.h
Citar
#include <string>
using std::string;
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(); // Muestra mensaje de bienvenida.
private:
string nombreCurso; // Nombre del curso para este LibroCalificaciones
};
using std::string;
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(); // Muestra mensaje de bienvenida.
private:
string nombreCurso; // Nombre del curso para este LibroCalificaciones
};
LibroCalificaciones.cpp
Citar
#include <iostream>
using std::cout;
using std::endl;
#include "LibroCalificaciones.h"
// El constructor inicializa nombreCurso con el objeto string suministrado como argumento.
LibroCalificaciones::LibroCalificaciones(string nombre)
{
establecerNombreCurso(nombre); // Inicializa nombreCurso
}
// Función para establecer nombreCurso
void LibroCalificaciones::establecerNombreCurso(string nombre)
{
nombreCurso = nombre; // Almacena el nombre del curso en el objeto.
}
// Función para obtener el nombre del curso.
string LibroCalificaciones::obtenerNombreCurso()
{
return nombreCurso;
}
// Muestra un mensaje de bienvenida.
void LibroCalificaciones::mostrarMensaje()
{
cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso()
<< "!" << endl;
}
using std::cout;
using std::endl;
#include "LibroCalificaciones.h"
// El constructor inicializa nombreCurso con el objeto string suministrado como argumento.
LibroCalificaciones::LibroCalificaciones(string nombre)
{
establecerNombreCurso(nombre); // Inicializa nombreCurso
}
// Función para establecer nombreCurso
void LibroCalificaciones::establecerNombreCurso(string nombre)
{
nombreCurso = nombre; // Almacena el nombre del curso en el objeto.
}
// Función para obtener el nombre del curso.
string LibroCalificaciones::obtenerNombreCurso()
{
return nombreCurso;
}
// Muestra un mensaje de bienvenida.
void LibroCalificaciones::mostrarMensaje()
{
cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso()
<< "!" << endl;
}
Y luego creo el programa cliente:
Libro.cpp
Citar
#include <iostream>
using std::cout;
using std::endl;
#include "LibroCalificaciones.h"
int main()
{
LibroCalificaciones libroCalificaciones1("CS101 Introduccion a C++");
LibroCalificaciones libroCalificaciones2("CS102 Estructuras de Datos");
cout << "libroCalificaciones1 creado para el curso: " << libroCalificaciones1.
obtenerNombreCurso()
<< "\nlibroCalificaciones2 creado para el curso: " << libroCalificaciones2.
obtenerNombreCurso() << endl;
return 0;
}
using std::cout;
using std::endl;
#include "LibroCalificaciones.h"
int main()
{
LibroCalificaciones libroCalificaciones1("CS101 Introduccion a C++");
LibroCalificaciones libroCalificaciones2("CS102 Estructuras de Datos");
cout << "libroCalificaciones1 creado para el curso: " << libroCalificaciones1.
obtenerNombreCurso()
<< "\nlibroCalificaciones2 creado para el curso: " << libroCalificaciones2.
obtenerNombreCurso() << endl;
return 0;
}
El problema está en que cuando quiero compilar Libro.cpp, siempre me dice que hubo un error al compilar (uso Visual Studio 2010).
Alguien me podría decir que está mal en el código ? Hay algún error en el? Le hace alta algo?
Saludos y espero que me puedan responder