I have the following class:
#ifndef PESSOA_H_INCLUDED
#define PESSOA_H_INCLUDED
#include <string>
struct aniver{
int dia;
int mes;
int ano;
};
class Pessoa{
private:
std::string nome;
std::string sexo;
aniver nascimento;
float altura;
public:
void setNome(std::string nome_);
std::string getNome();
void setSexo(std::string sexo_);
std::string getSexo();
void setNascimento(int dia, int mes, int ano);
std::string getNascimento();
void setAltura(float altura_);
float getAltura();
public:
int calcIdade();
public:
void toString();
};
#endif // PESSOA_H_INCLUDED
Your implementation:
#include "Pessoa.h"
#include <ctime>
#include <sstream>
#include <iostream>
void Pessoa::setNome(std::string nome_){
nome=nome_;
}
std::string Pessoa::getNome(){
return nome;
}
void Pessoa::setSexo(std::string sexo_){
sexo=sexo_;
}
std::string Pessoa::getSexo(){
return sexo;
}
void Pessoa::setNascimento(int dia, int mes, int ano){
nascimento.dia=dia;
nascimento.mes=mes;
nascimento.ano=ano;
}
std::string Pessoa::getNascimento(){
std::ostringstream nascimento_str;
nascimento_str << nascimento.dia << "-" << nascimento.mes << "-" << nascimento.ano;
return nascimento_str.str();
}
void Pessoa::setAltura(float altura_){
altura=altura_;
}
float Pessoa::getAltura(){
return altura;
}
int Pessoa::calcIdade(){
struct tm *birth;
time_t now;
double seconds;
int years;
time(&now);
birth=localtime(&now);
birth->tm_mday=nascimento.dia;
birth->tm_mon=nascimento.mes;
birth->tm_year=nascimento.ano-1900;
seconds=difftime(now, mktime(birth));
years=seconds/60/60/24/365;
return years;
}
void Pessoa::toString(){
std::cout << "Nome........: " << getNome() << std::endl;
std::cout << "Sexo........: " << getSexo() << std::endl;
std::cout << "Idade.......: " << calcIdade() << std::endl;
std::cout << "Peso........: " << getAltura() << std::endl;
std::cout << "Nascimento..: " << getNascimento() << std::endl << std::endl;
}
As I said in the question I would like to know if it is wrong to use struct
together with class
in c ++ or if the way I applied struct
to my code was unnecessary. So is it wrong to use struct
along with class
in C ++?