Maison >développement back-end >C++ >Pourquoi `std::is_struct` ne fait-il pas la distinction entre les structures et les classes en C ?
Pourquoi std::is_struct ne fait pas la différence entre les structures et les classes
En C, vous pourriez rencontrer des situations où la distinction entre les classes et les structures est importante. Cependant, le trait de type std::is_struct ne fournit pas cette distinction. Comprendre pourquoi peut clarifier les idées fausses sur les classes et les structures.
Idée fausse : les structures et les classes sont de types différents
La déclaration "il n'y a aucune différence entre les structures et les classes sauf la visibilité" peut créer de la confusion. En réalité, C a des classes depuis 1985 et le mot-clé struct est destiné à la compatibilité ascendante avec C.
Réalité : tous les types déclarés avec class et struct sont des classes
Le mot-clé struct n'affecte que la visibilité par défaut des membres et des bases. Les deux types déclarés avec class et struct sont des classes.
Conclusion
std::is_struct ne fait pas de différence entre les structures et les classes car il n'y a aucune distinction en C . Les classes déclarées avec class et struct sont du même type et ont les mêmes règles de visibilité.
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!