Qu'est-ce que la cession par des accolades appelé? et peut-il être contrôlé?
Qu'est-ce que cela s'appelle?
Vec3 foo = {1,2,3};
Peut-il être contrôlé par un opérateur ou quelque chose du genre? Comme puis-je spécifier les modalités de cette loi?
Par exemple si j'ai eu quelques compliqué classe pourrais-je l'utiliser pour attribuer des variables? (Juste un exercice de la curiosité).
- Je n'ai pas envie d'écrire ce ou trouver un doublon, mais en C++11, contrairement à Nawaz excellente réponse, cette syntaxe est peut être interceptée par l'initialiseur de la liste des constructeurs, et il peut en effet être utilisé pour l'affectation à l'aide d'initialiser une mesure temporaire. ideone.com/RwLop
Vous devez vous connecter pour publier un commentaire.
Qui n'est pas d'affectation. C'est l'initialisation.
Telle initialisation est autorisé pour l'ensemble, qui comprend la GOUSSE de classe. POD signifie Plain Old type de Données.
Exemple,
Voir ci-dessus compile amende : http://ideone.com/IXcSA
Mais encore une fois réfléchissez à ceci:
Le ci-dessus ne compile PAS. Il donne cette erreur:
Voyez vous-même : http://ideone.com/zO58c
Quelle est la différence entre
point3D
etvector3D
? Juste levector3D
a défini par l'utilisateur constructeur, et cela fait de la non-POD. Par conséquent, il ne peut pas être initialisée à l'aide d'accolades!Ce qui est un agrégat?
Que dit la Norme dans la section §8.5.1/1,
Et puis il est dit au §8.5.1/2,