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.