home *** CD-ROM | disk | FTP | other *** search
- #include <stream.hpp>
-
- // test all levels of conversions
-
- class complex {
- double r,i;
- public:
- complex (double re= 0.0, double im=0.0) { r=re; i=im; }
- };
-
- overload foo;
-
- void foo (double d, int x)
- {
- cout << "level 0 solution\n";
- }
-
- void foo (double d, long l)
- {
- cout << "level 1 solution\n";
- }
-
- #if 0
-
- void foo (complex c, int i)
- {
- cout << "level 2 solution\n";
- }
-
- #endif
-
- main()
- {
- double d;
- int i;
-
- foo (d,i);
- // level 2 solution: convert double to complex
- // level 1 solution: convert int to long
- // level 0 solution: exact match
- }
-
-
- /* results:
- choices present
- 0,1,2 0
- 1,2 1
- 0, 2 0
- */
-