[C++] Unterscheidung von Typ und Instanz
Verfasst: 25.08.2011, 00:56
Wusste leider nicht wonach ich genau suchen muss, daher entschuldige ich mich schonmal falls es das schon gab (wovon ich fast ausgehe).
In der Regel bekommt der Compiler ja Bauchschmerzen wenn man ein Objekt genauso nennt wie den Typen. Beispiel:
Dies kann man umgehen mit:
Soweit so gut. Nun habe ich folgendes Szenario:
Ich so: Bitte!
Der Compiler: Nö!
Oder anders (MSVC++ 2008): error C2059: syntax error : '.'
Mir ist bewusst, dass er hier vom Typ class foo ausgeht und nicht vom Objekt. Die Frage ist wieso. Liegt es am extern? Danke für Hinweise.
Antworten wie "nenn das Objekt einfach um" sind zwar nett, aber ich frage aus Interesse. Warum geht der Compiler vom Typ aus bzw. kennt das Objekt scheinbar nicht oder wie kann ich dem Compiler das ganze korrekt vermitteln?
In der Regel bekommt der Compiler ja Bauchschmerzen wenn man ein Objekt genauso nennt wie den Typen. Beispiel:
Code: Alles auswählen
class foo { ... };
foo foo;
Code: Alles auswählen
class foo foo;
Code: Alles auswählen
// foo.h
class foo
{
static void bar(void);
};
extern class foo foo;
// foo.cxx
void foo::bar(void)
{
foo.something = something_else;
}
// main.cxx
class foo foo;
Der Compiler: Nö!
Oder anders (MSVC++ 2008): error C2059: syntax error : '.'
Mir ist bewusst, dass er hier vom Typ class foo ausgeht und nicht vom Objekt. Die Frage ist wieso. Liegt es am extern? Danke für Hinweise.
Antworten wie "nenn das Objekt einfach um" sind zwar nett, aber ich frage aus Interesse. Warum geht der Compiler vom Typ aus bzw. kennt das Objekt scheinbar nicht oder wie kann ich dem Compiler das ganze korrekt vermitteln?