Eli tarkoitus olisi koulutehtävänä tehdä Kuvio-luokka ja johtaa siitä ympyrä- ja suorakaide-luokat. En vaan ymmärrä sekavista luentomateriaaleista, miten ohjelma tulisi toteuttaa. Isoin ongelma lienee siinä, että en osaa kirjoittaa pääohjelmaan (mainin alle siis)mitään järkevää/toimivaa... Kuvio-luokka luultavasti järkevintä tehdä abstrakti-luokaksi ja siitä juontaa aliluokat.
Jos joku ehtisi auttaa niin se olis hienoa !
Tässä yksinkertainen ja lyhyt koodin pätkä aiheesta:
#include <iostream>
using namespace std;
class Kuvio
{
public:
virtual ~Kuvio()
{
}
virtual void Tulosta() = 0;
};
class Ympyra : public Kuvio
{
public:
void Tulosta()
{
cout << "Olen ympyra...\n";
}
};
int main()
{
Ympyra.Tulosta();
cin.get();
}Jos tarkoitus on vain toteuttaa luokat, ei tarvitse tehdä main-funktiota ollenkaan. Muussa tapauksessa main-funktion sisältö riippuu tietenkin siitä, mitä haluat siinä tehdä. Aiheen kannalta jollain tavalla järkevä esimerkkiohjelma voisi olla tällainen:
int main() {
Ympyra y;
Suorakaide s;
Kuvio* k[2] = {&y, &s};
for (int i = 0; i < 2; ++i) {
k[i]->Tulosta();
}
}Kannattaa myös opetella sisentämään kaikki koodit siististi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.