Question C++
tuning4ever
Messages postés
654
Statut
Membre
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute en C++, et j'ai une question à laquelle je n'arrive pas trouver de réponse claire, même après avoir longuement recherché sur Google.
Voila: Qu'est-ce qu'un type dérivé? par rapport à un type de base, je vois pas bien la différence!
Merci d'avance
Je débute en C++, et j'ai une question à laquelle je n'arrive pas trouver de réponse claire, même après avoir longuement recherché sur Google.
Voila: Qu'est-ce qu'un type dérivé? par rapport à un type de base, je vois pas bien la différence!
Merci d'avance
3 réponses
-
ben les types de base sont présents dans tous les compilateurs, pour les types dérivés tu dois faire les bons "include" ou les déclarations toi-même.
Les types dérivés sont beaucoup plus flexibles (mais sont faits à partir des types de base)
les types dérivés peuvent être des classes, et donc avoir des fonctions qui leurs sont propres. -
Merci, mais tu aurais un exemple concret dans lequel ce serait utile, parce que je me le représente très mal
-
par exemple, utilises-tu le type "string" pour les chaines de caractères ?
ou tu utilises le bon vieux tableau de char comme en C ?
le type string est un type dérivé. Ce n'est pas un type "de base" (même si ce type est dans le standard C++).
Il faut inclure <string> pour l'utiliser.
Il offre plein de choses sympa pour éviter l'horreur des char [] .
par exemple :#include <string> string maChaineCPP; maChaineCPP = "Hello world" // impossible en C // en C il faudrait faire un truc du genre : char maChaineC[20]; strcpy(maChaineC, "Hello World"); //(pour cette dernière il faut inclure <cstring> la librairie <string.h> du C) //pas de problème avec ça : maChaineCPP = "Une grosse phrase, plus grosse que celle d'avant"; //gros problème avec ça !!! : strcpy(maChaineC, "Une grosse phrase, plus grosse que celle d'avant"); //en effet, la chaine est trop grosse pour le tableau déclaré précédemment, //risque d'erreur de mémoire à un endroit indéterminé du programme.