Ziehier het volgende stukje code (Datum stelt een willekeurige klasse voor):
Als ik dit probeer te compileren, krijg ik de volgende error:
Nu is mijn vraag: waarom werkt die aanroep van test() op regel 13 wél en die op regel 11 niet?
Uiteindelijk gebeurt er achter de schermen toch bijna precies hetzelfde?
De MS VisualC++ 6.0 compiler klaagt hier trouwens helemaal niet over.
Ik vond het eerst wel leuk dat g++ al mijn slordigheidsfoutjes opmerkte,
die door VC door de vingers werden gezien.
Maar ik begrijp totaal niet waarom 'm hierover klaagt.
(g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) btw)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // Test.cpp
#include "Datum.h"
void test(Datum& d)
{
}
int main()
{
test(Datum());
Datum temp;
test(temp);
} |
Als ik dit probeer te compileren, krijg ik de volgende error:
code:
1
2
3
| Test.cpp: In function `int main()': Test.cpp:11: could not convert `Datum()' to `Datum&' Test.cpp:6: in passing argument 1 of `void test(Datum&)' |
Nu is mijn vraag: waarom werkt die aanroep van test() op regel 13 wél en die op regel 11 niet?
Uiteindelijk gebeurt er achter de schermen toch bijna precies hetzelfde?
De MS VisualC++ 6.0 compiler klaagt hier trouwens helemaal niet over.
Ik vond het eerst wel leuk dat g++ al mijn slordigheidsfoutjes opmerkte,
die door VC door de vingers werden gezien.
Maar ik begrijp totaal niet waarom 'm hierover klaagt.
(g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) btw)
[ Voor 7% gewijzigd door DieterVDW op 30-12-2003 23:47 ]