Buenas tardes.
Estoy intentando aprender a programar c++ solo con emacs y la shell pero tengo unas pequeñas duda acerca de como compilar cuando estoy usando objetos.
En concreto cuando los creo en dos partes( el header y el ¿cuerpo?). Aparte todavía no entiendo muy bien porque esta más correcto separado pero eso ya es otra historia.
Este es mi código
Persona.cpp
#include <iostream>
#include "Persona.h"
using namespace std;
persona::persona(){
Nombre = "sinnombre";
Edad = 0;
}
string persona::getNombre(){
return Nombre;
}
void persona::setNombre(string nombre){
Nombre = nombre;
}
int persona::getEdad(){
return Edad;
}
void persona::setEdad(int edad){
Edad = edad;
}
Persona.h
#include <iostream>
using namespace std;
class persona{
private:
string Nombre;
int Edad;
public:
persona();
string getNombre();
void setNombre(string nombre);
int getEdad();
void setEdad(int edad);
};
Prueba.cpp
#include <iostream>
#include "Persona.h"
using namespace std;
int main(void){
persona yo;
cout << yo.getNombre() << endl;
}
En teoria tendría que compilar los archivos Prueba.cpp y Persona.cpp , verdad?.
si tendría que cambiar la clase Prueba, tendría que volver a compilar las dos clases o solo la de prueba?
un proyecto grande tendría que compilar todos sus clases .cpp ?
es preferible que uses Make para eso, tienes que compilar cada cosa en codigo objeto y luego hacer un ejecutable con ello
no se como es emacs y powershell
por lo menos en linux con g++
con un
g++ -c myclass.cpp
g++ -c main.cpp
g++ myclass.o main.o
basta... no se si puedas hacer algo así
dos cosas de tu codigo
en el .h
persona();
no es publico ni privado, va fuera de ellos al inicio
persona yo;
es
persona yo();
para iniciar el persona()