double question concernant les classes de classes
J ai du mal a comprendre l utilité de la structure class de class comme illustrée dans le essage de MSDN error suivant:
Citation:
Compiler Error C2327
'symbol' : is not a type name, static, or enumerator
Code within a nested class attempts to access a member of the enclosing class that is not a type name, a static member, or an enumerator.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Example
// C2327.cpp
int x;
class enclose {
public:
int x;
static int s;
class inner {
void f() {
x = 1; // C2327; enclose::x is not static
s = 1; // ok; enclose::s is static
::x = 1; // ok; ::x refers to global
}
};
}; |
Premiere question:
quelqu un de ce Forum aurait-il une illustration pertinente de cette technique par un exemple concret de maniere a bien comprendre l utilite d une telle syntaxe qui pour moi reste tres exotique.
deuxieme question:
Modifions le code ci dessus par:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
class enclose {
public:
int x;
static int s;
int g( int &);
class inner {
void f() {
x = 1; // C2327; enclose::x is not static
s = 1; // ok; enclose::s is static
::x = g(s); // ok; ::x refers to global
}
};
}; |
:tagcode: [Farscape: Merci]