Mam takie pytanie odnośnie klasy abstrakcyjnej . Czy da się wywołać metodę w klasie abstrakcyjnej?? i dla czego nie mogę umieścić metod w klasa.cpp bo wywala jakiś błąd ??
#include <vcl.h>
#include <iostream.h>
#include "klasa.h"
int main(int argc, char* argv[])
{
figure *f[3];
for (int i=0;i<3;i++)
{
//f[i]=new figure;
//f[i]->area(); //czy da się jakos wywolac metode area z klasy abstrakcyjnej
f[i]=new kolo;
f[i]->area();
}
for(int i=0;i<3;i++)
{
f[i]->area();
}
system("pause");
return 0;
}
//---------------------------------------------------------------------------
klasa.h
#include <iostream.h>
#ifndef KLASA_H
#define KLASA_H
class figure
{
private:
string name;
public:
void setname(string);
figure(){};
virtual void area()=0;
};
class kolo: public figure
{
private:
float r;
public:
kolo();
void area();
};
void kolo::area()
{
cout<<"wzor na pole kola = 2*3.14*a \n";
cout<<"pole= "<<2*3.14*r<<endl;
}
kolo::kolo()
{
cout<<"podaj promien kola: ";
cin>>r;
}
void figure::area()
{
cout<<"niezidentyfikowany wzor na pole \n";
}
#endif