Je viens dans le code suivant:C++ définition de classe en ligne et initialisation objet
#include <iostream>
static class Foo
{
public:
Foo()
{
std::cout << "HELLO" << std::endl;
}
void foo()
{
std::cout << "in foo" << std::endl;
}
}
blah;
int main()
{
std::cout << "exiting" << std::endl;
blah.foo();
return 0;
}
Je ne l'ai pas vu la méthode ci-dessus definining une variable avant - la définition de classe se fait en ligne avec la variable définition. Cela me rappelle les cours anonymes en Java. Comment s'appelle-t-il, et est-ce dans la norme C++?
Merci
Taras
Est-il nécessaire pour que la classe soit nommé dans ce cas (par exemple, sont des classes anonymes autorisés en C++)? Et, comme il est nommé, pouvez-vous créer d'autres objets 'Foo'? –
... bientôt la compatibilité avec ISO C99. Je devrais ajouter, cependant, que cet usage est assez rare dans le C++ idiomatique, même si c'est légal. –
@STingRaySC: non, les classes anonymes sont très bien, et oui, vous pouvez en créer d'autres. En fait vous pouvez en créer deux même s'il est anonyme: 'struct {...} foo1, foo2;'. – Potatoswatter