Я хочу сделать программу, которая будет в 3 файлах. «Persona.hpp» «Persona.cpp» «main.cpp» не уверен, как это можно сделать.Заголовок, определения функций, основные в разных файлах
Это "Persona.hpp"
#ifndef __PERSONA_HPP
#define __PERSONA_HPP
#include <string>
using namespace std;
class Persona{
public:
Persona();
void setNombre(string N);
void setFechaNac(string F);
void setPeso(float P);
void setEstatura(float E);
string getNombre(void);
string getFechaNac(void);
float getPeso(void);
float getEstatura(void);
void mostrarDat(void);
private:
string nombre;
string fechaNac;
float peso;
float estatura;
};
#endif
"Persona.cpp"
#include "Persona.hpp"
#include <iostream>
#include <string>
using namespace std;
Persona::Persona(){
nombre = "";
fechaNac = "";
peso = estatura = 0;
}
void Persona::setNombre(string N){
nombre = N;
}
void Persona::setFechaNac(string F){
fechaNac = F;
}
void Persona::setPeso(float P){
peso = (P>1 && P<500) ? P : 0;
}
void Persona::setEstatura(float E){
estatura = (E>30 && E<280) ? E : 0;
}
string Persona::getNombre(void){
return nombre;
}
string Persona::getFechaNac(void){
return fechaNac;
}
float Persona::getPeso(void){
return peso;
}
float Persona::getEstatura(void){
return estatura;
}
void Persona::mostrarDat(){
cout << "\nNombre: " << getNombre();
cout << "\nFecha de nacimiento: " << getFechaNac();
cout << "\nPeso: " << getPeso() << " Kg";
cout << "\nEstatura: " << getEstatura() << " Cm";
}
"main.cpp":
#include "Persona.hpp"
#include <iostream>
using namespace std;
int main(){
Persona humano;
cout << "\nConstructor default: ";
humano.mostrarDat();
humano.setNombre("Jose Ramon Garibay Alvarez");
humano.setFechaNac("27 Octubre de 1989");
humano.setPeso(80);
humano.setEstatura(175.5);
cout << "\n\nEstableciendo datos validos: ";
humano.mostrarDat();
humano.setNombre("Karina Nogueira Briseno");
humano.setFechaNac("15 Agosto de 1985");
humano.setPeso(0.457);
humano.setEstatura(17);
cout << "\n\nEstableciendo datos Invalidos: ";
humano.mostrarDat();
return 0;
}
Первый из всех я получаю сообщение об ошибке: http://oi40.tinypic.com/2v96quo.jpg и я не знаю, если im делает правильные файлы «#including». Я помню, мой профессионал использовал что-то вроде «#ifndef SOMETHING», но я не знаю, нужно ли это, спасибо за ваши ответы! :)
Для начала измените '#include' на '#include" Persona.hpp "'. Во-вторых, '#ifndef PERSONA_HEADER' называется защитой заголовка (или включает в себя охрану, или включает fencepost, или множество других имен) и используется для защиты от множественного включения зависимых заголовков. Есть много примеров правильного использования этого на этом сайте. Сделайте некоторые поиски на этих условиях. –
WhozCraig