Erro no uso de herança
:rolleyes:
O programa abaixo está com erro de compilação por conta da herança. Isto aconteceu depois que eu fiz à classe a base se tornar a classe derivada. Matematicamente, faz mais sentido uma “circunferência” derivar um circula, que o contrário.
Quando fiz a inversão surgiram tantos erros, que não conseguir sanar. A lista de erros foi tão grande que não deu para listar. Gostaria de ressaltar, que antes de eu inverter as classes, ou seja, colocar Medidas_Circunferencia como base, tudo funcionava.
#include <iostream>
#include <cstdlib>
using namespace std;
class Medidas_Circunferencia
{
private:
double Diametro;
double Diametro_Circunferencia();
public:
void Mostra_Medidas_Circunferencia();
};
class Circulo: public Medidas_Circunferencia
{
protected:
double raio;
static const double PI;
private:
double Area;
double Area_Circulo();
public:
//Circulo (double r);
void Mostra_Area();
Circulo (double r){}: Medidas_Circunferencia(r);
};
Circulo::Circulo(double r)
:Area(0)
{
raio=r;
}
double Circulo::Area_Circulo()
{
cout << "Area area do Circulo." << endl;
Area=(raio*raio)*PI; // Área do Circulo
return (Area);
}
void Circulo::Mostra_Area()
{
Area_Circulo();
cout << Area << endl;
return;
}
double Medidas_Circunferencia::Diametro_Circunferencia()
{
cout << "Diametro da circunferencia:" << endl;
Diametro=2*raio;
return(Diametro);
}
void Medidas_Circunferencia::Mostra_Medidas_Circunferencia()
{
double valor_diametro;
valor_diametro=Diametro_Circunferencia();
cout << valor_diametro << endl;
return;
}
const double Circulo::PI=3.1416; //define a variável no
//escopo global
int main()
{
//Circulo Circ(15);
//Circ.Mostra_Area();
Circulo Medidas(15);
Medidas.Mostra_Area();
cout << endl;
Medidas.Mostra_Medidas_Circunferencia();
system ("pause");
return 0;
Obrigado
Discussão (1)
Carregando comentários...