Iets wat ik leuk vind aan C++ en aan Object Pascal, is dat je je member functies buiten je class kunt uitwerken. Hiermee bedoel ik het volgende:
Zo krijg je nl. een mooi overzicht binnen je class welke functies je hebt, zonder dat dat overzicht vergalt wordt door de uitwerking van de functies binnen je class.
In C# en Java moet je nl. alles binnen de class zelf doen.
Nu, C# en Java zijn natuurlijk wel volledig OO, wat C++ niet is, maar de mogelijkheid om functie prototype en functie definitie gescheiden te houden doet toch eigenlijk geen afbreuk aan het OO principe? Waarom is dit dan eigenlijk niet mogelijk?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| class Test
{
private:
int x, y;
public:
Test();
Test(int, int);
int som();
};
Test::Test()
{
x = y = 0;
}
int Test::som()
{
return x + y;
} |
Zo krijg je nl. een mooi overzicht binnen je class welke functies je hebt, zonder dat dat overzicht vergalt wordt door de uitwerking van de functies binnen je class.
In C# en Java moet je nl. alles binnen de class zelf doen.
Nu, C# en Java zijn natuurlijk wel volledig OO, wat C++ niet is, maar de mogelijkheid om functie prototype en functie definitie gescheiden te houden doet toch eigenlijk geen afbreuk aan het OO principe? Waarom is dit dan eigenlijk niet mogelijk?
https://fgheysels.github.io/