1
resposta

Getter do CPF - impossivel de fazer

Nao consigo de jeito nenhum fazer um getter do CPF o erro eh "E0312 no suitable user-defined conversion from "CPF " to "std::string" existe segue o codigo das minhas classes abaixo:

Pessoa.hpp

#pragma once
#include <string>
#include "CPF.hpp"

class Pessoa
{
    //ATRIBUTOS
protected:
    std::string nome;
    CPF numerocpf;

    //CONSTRUTOR
    Pessoa(std::string nome, CPF cpf);

    //METODOS

    std::string getNome();
    std::string getCpf();

    void verificaTamanhoNome();
};

Pessoa.cpp

#include "Pessoa.hpp"
#include <iostream>
#include <string>
#include "CPF.hpp"

Pessoa::Pessoa(std::string nome, CPF cpf) :
    nome(nome),
    numerocpf(cpf)
{
    verificaTamanhoNome();
}


void Pessoa::verificaTamanhoNome()
{
    if (nome.size() < 5)
    {
        std::cout << "Nome muito curto." << std::endl;
        exit(1);
    }
}

Titular.hpp

#pragma once
#include <iostream>
#include <string>
#include "CPF.hpp"
#include "Pessoa.hpp"

class Titular : public Pessoa
{
    //ATRIBUTOS
private:


public:
    //CONSTRUTORES
    Titular(std::string nome, CPF cpf);
    //SETTER

    //GETTER
    std::string getNome();
    std::string getCpf();

    //METODOS

};

Titular.cpp

#include "Titular.hpp"
#include <string>
#include "Pessoa.hpp"

//CONSTRUTOR
Titular::Titular(std::string nome, CPF cpf):Pessoa(nome, cpf)

{

}

std::string Titular::getNome()
{
    return nome;
}
std::string Titular::getCpf()
{
    return numerocpf; (AQUI QUE FICA VERMELHINHO DANDO ERRO)
}
1 resposta

Ederson, você está retornando um objeto do tipo CPF, mas está informando que o método retorna uma std::string. Você precisa de um dos 2:

  1. Pegar o número do CPF do objeto
  2. Informar que o método retorna um objeto do tipo CPF

PS.: Sempre que for colocar código no fórum, coloque entre 3 crases (`). Dessa forma o código fica formatado.

assim

Eu editei sua pergunta para estar formatada corretamente. :-)