Maison >développement back-end >C++ >Pourquoi `std::is_class` renvoie-t-il True pour les structures en C ?
La distinction entre les structures et les classes en C
En C , beaucoup ont remarqué que le trait de type std::is_class renvoie vrai pour les deux classes et structures. Cela soulève la question de savoir pourquoi il n’y a pas de distinction claire entre les deux dans ce trait. On suppose généralement qu'en C les classes et les structures sont pratiquement identiques, mais est-ce vraiment le cas ?
Contrairement à la croyance populaire, C n'a pas pris en charge les structures depuis 1985. Chaque type déclaré à l'aide du mot-clé class ou struct est fondamentalement une classe. Le mot-clé struct, ainsi que les règles de visibilité uniques appliquées à ces déclarations de classe, ont été conservés uniquement pour des raisons de compatibilité descendante avec C.
Par conséquent, la raison pour laquelle C ne fait pas de distinction entre les classes et les structures dans std::is_class est parce que il n'y a pas de différence inhérente entre eux. Du point de vue du langage, tous les types définis à l'aide des deux mots-clés sont uniformément reconnus comme des classes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!