#include <iostream>
using namespace std;
class Circulo
{
private:
double Area,raio;
static const double PI;
double Area_Circulo();
public:
Circulo (double r);
void Mostra_Area();
};
class Medidas_Circunferencia : public Circulo
{
private:
double Diametro;
double Diametro_Circunferencia();
public:
Medidas_Circunferencia(double r):Circulo (r){};
void Mostra_Medidas_Circunferencia();
};
Circulo::Circulo(double r)
:Area(0)
{
raio=r;
}
void Circulo::Mostra_Area()
{
Area_Circulo();
cout << Area << endl;
return;
}
double Medidas_Circunferencia::Diametro_Circunferencia()
{
cout << "Diametro da circunferência:" << endl;
Diametro=2*raio;
return(Diametro);
}
void Medidas_Circunferência::Mostra_Medidas_Circunferencia()
{
Diametro_Circunferencia();
return;
}
...........
.............
const double Circulo::PI=3.1416;
int main()
{
Medidas_Circunferencia Medidas(15);
Medidas.Mostra_Area();
cout << endl;
return 0;
}
Na linha abaixo estou chamando o construtor da classe-Base Circulo, junto do construtor da derivada, pois sei que construtores não padrão da classe base, tem de ser chamados na derivada.
Medidas_Circunferencia(double r):Circulo (r){};
Sendo o construtor publico, não deveria dar acesso aos membros privados da classe base ? preciso usar PI e raio para calcular diâmetro na derivada.
Construtor a parte, ainda criei uma função publica para chamar a função que calcula o dímetro. Não deveria funcionar pelo menos por causa da função pública ?
Erros:
D:\Teste\heranca.cpp In member function `double Medidas_Circunferencia::Diametro_Circunferencia()'
8 D:\Teste\heranca.cpp `double Circulo::raio' is private
51 D:\Teste\heranca.cpp within this context
8 D:\Teste\heranca.cpp `double Circulo::raio' is private
51 D:\Teste\heranca.cpp within this context
51 D:\Teste\heranca.cpp At global scope:
55 D:\Teste\heranca.cpp stray '\234' in program
55 D:\Teste\heranca.cpp `Medidas_Circunfer' does not name a type
Pergunta
Castro
:(
Vejam o código:
Na linha abaixo estou chamando o construtor da classe-Base Circulo, junto do construtor da derivada, pois sei que construtores não padrão da classe base, tem de ser chamados na derivada.Sendo o construtor publico, não deveria dar acesso aos membros privados da classe base ? preciso usar PI e raio para calcular diâmetro na derivada.
Construtor a parte, ainda criei uma função publica para chamar a função que calcula o dímetro. Não deveria funcionar pelo menos por causa da função pública ?
Erros:
Obrigado
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.