Je n'étais pas familier avec cela. Je l'ai cherché sur google mais je n'ai pas trouvé ma réponse. Donc, poster ma question. Juste essayé programme suivant:C++: tableau statique à l'intérieur d'une classe ayant une taille inconnue
#include <iostream>
class test
{
static char a[];
static int b[];
};
int main()
{
test t;
}
Il compile très bien sans aucun avertissement sur MSVS 2010 & g ++ 4.8.1. Il compile aussi bien dans le compilateur C++ 14. (Voir la démo en direct here.) Alors, où en dit la norme C++ à ce sujet? Si je supprime le mot-clé statique de la déclaration du tableau char dans la classe test, le compilateur donne une erreur ISO C++ forbids zero size array
lorsque j'utilise l'option de ligne de commande -pedantic-errors
dans l'option g ++ & /Za
dans le compilateur MSVS 2010, elle indique error C2133: 'test::a' : unknown size
. Donc, mes questions sont:
1) Quelle est l'utilisation de la matrice statique de taille inconnue?
2) Comment puis-je spécifier plus tard leur taille & accéder à ces éléments de tableau? Je suis vraiment confus.
3) Pourquoi supprimer les fils de mots-clés statiques aux erreurs de compilation?
Il serait préférable que quelqu'un l'explique en utilisant un exemple simple.
Merci.
Pourquoi? – Destructor
Parce que c'est une définition pour la * classe *. En C++, tout objet doit avoir une taille connue. –