Qu'est ce qu'un Objet Anonyme?
Qu'est ce qu'un Objet Anonyme exactement?
N'support du C++/avoir des Objets Anonymes?
Les choses sont appelés les anonyme struct et anonyme syndicats, est-ce que vous cherchez?
Non je voulais dire des Objets Anonymes.
Définir "l'Objet Anonyme" (et note que, bien que pas "des objets anonymes" sont définies en C++ standardese, les mots sans nom et anonyme sont tous deux utilisés et spécifique moyenne et des choses légèrement différentes. cf. "Anonyme union définit un objet sans nom de anonyme de type").
C'est la question.
Non je voulais dire des Objets Anonymes.
Définir "l'Objet Anonyme" (et note que, bien que pas "des objets anonymes" sont définies en C++ standardese, les mots sans nom et anonyme sont tous deux utilisés et spécifique moyenne et des choses légèrement différentes. cf. "Anonyme union définit un objet sans nom de anonyme de type").
C'est la question.
OriginalL'auteur Sadique | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Le C++ standard ne définit pas le terme "objet anonyme", mais il va de soi que l'on pourrait sainement utiliser ce terme pour décrire n'importe quel objet qui n'a pas de nom:
f(T());
void func(int, int, int);
Ce que je ne serait pas comte est allouée dynamiquement des objets:
Techniquement parlant, un "objet" est une région de stockage [1.8/1 en 2003], qui devrait inclure le X octets qui composent l'entier allouée dynamiquement par
new int;
.Dans
int* ptr = new int;
le pointeur (lui-même un objet trop, ne pas oublier!) le nom deptr
et l'entier lui-même n'a pas d'autre nom que*ptr
. Pourtant, j'avais hésité à appeler cela un objet anonyme.Encore une fois, cependant, il n'y a pas de norme de terminologie.
OriginalL'auteur Lightness Races in Orbit
C'est une solution simpliste, mais un objet anonyme est fondamentalement un objet qui le compilateur crée un
class
pour.Par exemple en C# (je sais c'est un peu hors de propos), vous pouvez simplement créer un type anonyme par:
new { filename = value }
.Le compilateur crée effectivement une classe appelée
AnonSomething1
[Un nom aléatoire, vous ne savez pas qui a ces champs. C'est pourquoi, au point que vous venez de créer une instance de cetteAnonSomething1
. C++ ne permet pas de rendre anonymes les types de classe en ligne (comme Java et C# qui ont un Objet de base de la classe qui l'anon types peuvent dériver).Cependant, vous pouvez faire un anonyme struct en écrivant
qui crée un anonyme struct et instancie avec l'alias
myanonstruct
. Ce code C++ ne permet pas de définir un type, il crée juste un anonyme avec 1 par exemple.Voir C#: Anon Types
Voir Java: Anon Types
Voir C++ Structures: msdn
Ce Andrey dit. J'avais downvote, mais j'ai touché mon votecap pour la journée.
J'ai supposé qu'il parlait, les types anonymes parce que le C++ ne pourrait pas exister sans les objets anonymes, il n'y aurait pas moyen de copier args, retour par valeur, opérateur de surcharge, etc. sans anon objets.
OriginalL'auteur Bob Fincheimer
Anonyme objets sont des objets sans nom. Exemple:
Je n'ai jamais dit qu'il était. Les deux cas de
Foo
que ce code crée sont anonymes.vous avez la terminologie de mal, ils ne sont pas appelés anonyme
OriginalL'auteur Thomas