Estoy tratando de aplicar POO a C++ y no consigo lograrlo, intento crear el objeto humano1 y mi codigo arroja errores, está bien estructurado el constructor? o solo debería colocar el constructor vacio? en mi caso, no necesitaría que se le asignen valores iniciales, se los asignaré yo. Al parecer el error está ligado al constructor que está fuera de la clase:
||=== Build: Debug in C++ POO (compiler: GNU GCC Compiler) ===|
D:\C++\Proyectos\C++ POO\main.cpp||In constructor 'Humano::Humano(int, std::string, std::string)':|
D:\C++\Proyectos\C++ POO\main.cpp|45|warning: unused variable 'edad' [-Wunused-variable]|
D:\C++\Proyectos\C++ POO\main.cpp||In function 'int main()':|
D:\C++\Proyectos\C++ POO\main.cpp|52|error: no matching function for call to 'Humano::Humano()'|
D:\C++\Proyectos\C++ POO\main.cpp|52|note: candidates are:|
D:\C++\Proyectos\C++ POO\main.cpp|44|note: Humano::Humano(int, std::string, std::string)|
D:\C++\Proyectos\C++ POO\main.cpp|44|note: candidate expects 3 arguments, 0 provided|
D:\C++\Proyectos\C++ POO\main.cpp|5|note: Humano::Humano(const Humano&)|
D:\C++\Proyectos\C++ POO\main.cpp|5|note: candidate expects 1 argument, 0 provided|
D:\C++\Proyectos\C++ POO\main.cpp|53|error: 'humano1' was not declared in this scope|
||=== Build failed: 2 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
Mi codigo:
#include <iostream>
#include <stdlib.h>
using namespace std;
class Humano {
private:
int edad;
string sexo;
string nombre;
public:
Humano(int _edad, string _sexo, string _nombre);
void setEdad(int _edad) {
edad = _edad;
}
void setSexo(string _sexo) {
sexo = _sexo;
}
void setNombre(string _nombre) {
sexo = _nombre;
}
int getEdad() {
return edad;
}
string getSexo() {
return sexo;
}
string getNombre() {
return nombre;
}
};
Humano::Humano(int _edad, string _sexo, string _nombre) {
int edad = _edad;
string sexo= _sexo;
string nombre= _nombre;
}
int main(){
Humano humano1;
humano1.setEdad(18);
humano1.setSexo("Hombre");
humano1.setNombre("Pedro");
cout<<humano1.getEdad()<<endl;
}
¿El uso de THIS, podría reemplazar el usar el nombre de los parametros como _edad,_sexo?