Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Modificador de acesso na herança múltipla de Autenticavel

Na minha IDE, o visual studio 2019. O código a seguinte gerou problemas.

#pragma once
#include"Funcionario.hpp"
#include"Autenticavel.hpp"
class Gerente final : public Funcionario, Autenticavel
{
public:
    Gerente(std::string nome, CPF cpf, float salario,std::string senha);
    float bonificacao()const override;
};

Quando chamo o método de autentica,na instância de Gerente, ou passo essa mesma instância de Gerente no parâmetro de fazLogin, a IDE diz que "a conversão para a classe base inacessivel nao é permitido ". Quando inseri o public na estenção de autenticavel(como o instrutor deixou no vídeo). Esse erro parou de acontecer. Na atividade 2, uma parte o instrutor disse que não geraria problemas se fizesse da forma que fiz acima. Minha duvida é, levando em consideração o código acima, se eu não colocar o public na frente de Autenticavel, por padrão isso se torna privado? Ou foi um erro incomum que aconteceu?

1 resposta
solução!

Olá.

Uma classe se vc NÃO deixar explícito os membros por default são Privados.

Em uma Struct a mesma coisa só que por default é Publico.

Inclusive essa é a principal diferença (ou pelo menos uma das principais diferenças) entre Struc e Class em C++.