Duda a la hora de compilar cuanto utilizo objetos.

Iniciado por hllsfn, 27 Enero 2017, 14:56 PM

0 Miembros y 1 Visitante están viendo este tema.

hllsfn

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 ?

engel lex

#1
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()
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.