Ik ben nog niet zolang met C++ bezig en ben nu tegen een probleempje aangelopen mbt inheritance.
Laat ik maar meteen met de deur in huis vallen: ik heb een class Polygon en een class Rectangle, die inherit van Polygon. In de class Rectangle is een functie area() gedefinieerd die de oppervlakte van de rechthoek returned:
In mijn main doe ik dit:
Maar ik krijg nu de foutmelding dat Polygon geen functie area() bevat. Hoe moet ik dit anders aanpakken? Ik wil bijvoorbeeld nog een class Triangle toevoegen en dan in mijn code alle triangles en rectangles aanspreken alsof het polygons zijn. Wat je doet met abstract classes in Java dus.
/edit: typo
Laat ik maar meteen met de deur in huis vallen: ik heb een class Polygon en een class Rectangle, die inherit van Polygon. In de class Rectangle is een functie area() gedefinieerd die de oppervlakte van de rechthoek returned:
code:
1
2
3
4
5
6
7
8
9
10
11
| class Polygon {
protected:
int width, height;
public:
void setValues(int a, int b) {width=a; height=b;}
};
class Rectangle: public Polygon {
public:
int area(void) {return (width*height);}
}; |
In mijn main doe ik dit:
code:
1
2
3
4
5
6
| int main() {
Polygon * pol = new Rectangle;
pol->setValues(4,5);
cout << pol->area(); << endl;
} |
Maar ik krijg nu de foutmelding dat Polygon geen functie area() bevat. Hoe moet ik dit anders aanpakken? Ik wil bijvoorbeeld nog een class Triangle toevoegen en dan in mijn code alle triangles en rectangles aanspreken alsof het polygons zijn. Wat je doet met abstract classes in Java dus.
/edit: typo
[ Voor 8% gewijzigd door Verwijderd op 06-03-2003 03:02 ]