Contenu du cours
Types de Données C++
Types de Données C++
Type de Données Void
Vous devez toujours spécifier le type car c'est un langage à typage statique. Le compilateur doit connaître le type exact de chaque variable pour allouer la quantité correcte de mémoire et pour appliquer la sécurité des types. Il doit également connaître les types des valeurs de retour des fonctions et des paramètres.
Remarque
Un langage à typage statique est un langage où le type de données d'une variable est explicitement déclaré et appliqué par le compilateur.
main
#include <iostream> // Let's consider at a simple example. // Imagine you need to create a function that logges something in console // What type should it return? ___ log(std::string message) { std::cout << message; return ___; }
Dans ce cas, nous n'avons pas besoin d'un type de retour spécifique, il pourrait être int
, double
, float
ou bool
. Pour ce scénario, le type exact n'a pas d'importance. En fait, que se passe-t-il si nous n'avons pas besoin de retourner quoi que ce soit du tout ?
Void comme type de retour de fonction
Il y a souvent des fonctions qui semblent ne pas avoir besoin de retourner quoi que ce soit, comme :
main
// Outputting infromation in console ___ log(std::string message) { std:: cout << message; } // Updating values for variables ___ update(int& variable, int new_value) { variable = new_value; } // Calling other function ___ closeFile(std::fstream& file) { file.close(); }
Dans ce cas, nous pouvons utiliser le type de données void
. Le type de données void
en programmation signifie l'absence de toute valeur ou type. Il peut être utilisé de plusieurs manières différentes, mais pour la fonction, il est généralement utilisé pour indiquer qu'une fonction ne retourne aucune valeur.
main
#include <iostream> void log(std::string message) { std::cout << message; return; } int main() { log("This is a void function!"); }
Remarque
Nous avons utilisé un mot-clé
return
mais n'avons en fait passé aucune valeur, le mot-cléreturn
pourrait également être omis dans les fonctionsvoid
, essayez de l'effacer dans l'exemple.
Void en tant que Pointeur
Les pointeurs void (void*
) sont des pointeurs qui n'ont pas de type de données spécifique associé. Ils peuvent pointer vers n'importe quel type d'objet, mais vous devez les convertir au type approprié avant de les utiliser. Ils sont vraiment utiles mais parfois difficiles à comprendre.
main
#include <iostream> int main() { int num = 10; // Here we are creating a void pointer // Now it can point to any variable of any data type // You can try changing the type of `num` from `int` to `float` void* ptr = # // To use this pointer, we need to cast it to the appropriate type // VVV int* intPtr = static_cast<int*>(ptr); std::cout << *intPtr << std::endl; // Output: 10 }
Dans cet exemple, ptr
est un pointeur void qui pointe vers un entier (num
). Nous convertissons ensuite ptr en un pointeur int*
pour accéder et imprimer la valeur de num.
Merci pour vos commentaires !