@CuTeX0r:
bitte %d und net %i ;D
@Gast:
ähme nein, __LINE__ ist kein Typ, sondern ein PräProzessor Makro deines C98 Compilers. __LINE__ gibt wenn schon einen "unsigned int" wieder und __FILE__ einen "unsigned char*"
#define VARIABLE 1
ist KEIN int, es ist KEIN Dateityp! Es ist text und kein Typ.
Edit:
Beispiel:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#define VARIABLE 1
class MyClass
{
public:
void function (float value);
void function (unsigned double value);
void function (signed int value);
void function (double value);
void function (wchar_t value);
void function (DWORD value);
void function (signed char value);
void function (const signed float value);
void function (const signed wchar_t value);
void function (const unsigned wchar_t value);
void function (const DWORD value);
void function (const WORD value);
void function (bool value);
void function (double value);
};
MyClass Test;
Test.function (VARIABLE);
|
Na was meinste welche überladene Funktion wird aufgerufen? Könnte die 1. sein könnte die 5. sein oder sogar die 6.! Tja welche wird aufgerufen?
Du weist es nicht da #define kein Typ ist und deshalb Typunsicher ist. Der Compiler schnappt sich einfach eine Funktion durch zufall, obs die richtige ist oder net ist im doch egal, da denkt er sich: Tja blöder Programmierer, sein Pech wenn er #define für Variablen benutzt und net weis das sie auf Textbasis arbeitet.
schreib anstatt #define VARIABLE 1 IMMER den typ und davor das Const. denn das ist Typsicher.[/quote]