Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Void-datatypen | Andre Datatyper og Begreber
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
C++ Datatyper

bookVoid-datatypen

Stryg for at vise menuen

Du skal altid angive typen, fordi det er et statisk typet sprog. Kompileren skal kende den præcise type for hver variabel for at kunne allokere den korrekte mængde hukommelse og for at håndhæve typesikkerhed. Den skal også kende typerne for funktions returværdier og parametre.

Note
Bemærk

Et statisk typet sprog er et, hvor datatypen for en variabel eksplicit erklæres og håndhæves af kompileren.

main.cpp

main.cpp

copy
12345678910
#include <iostream> // Let's consider a simple example. // Imagine you need to create a function that logs something in console. // What type should it return? ___ log(std::string message) { std::cout << message; return ___; }

I dette tilfælde kræver vi ikke en specifik returtype; det kunne være int, double, float eller bool. For dette scenarie er den præcise type ikke vigtig. Faktisk, hvad nu hvis vi slet ikke behøver at returnere noget?

Void som funktionens returtype

Der findes ofte funktioner, hvor det ikke ser ud til at være nødvendigt at returnere noget, såsom:

main.cpp

main.cpp

copy
12345678
// Outputting information in console ___ log(std::string message) { std::cout << message; } // Updating values of variables ___ update(int& variable, int new_value) { variable = new_value; } // Calling another function ___ closeFile(std::fstream& file) { file.close(); }

I dette tilfælde kan vi bruge datatypen void. Datatypen void i programmering angiver fraværet af enhver værdi eller type. Den kan anvendes på mange forskellige måder, men for funktioner bruges den typisk til at angive, at en funktion ikke returnerer nogen værdi.

main.cpp

main.cpp

copy
123456789101112
#include <iostream> void log(std::string message) { std::cout << message; return; } int main() { log("This is a void function!"); }

Bemærk

Vi brugte nøgleordet return, men sendte faktisk ikke nogen værdi. Nøgleordet return kan også udelades i void-funktioner. Prøv at fjerne det i eksemplet.

Void som en Pointer

Void-pegepinde (void*) er pegepinde, der ikke har en specifik datatypetilknytning. De kan pege på enhver type objekt, men du skal caste dem til den passende type, før du bruger dem. De er meget nyttige, men nogle gange svære at forstå.

main.cpp

main.cpp

copy
1234567891011121314
#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 = &num; // 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 }

I dette eksempel er ptr en void-pegepind, der peger på et heltal (num). Vi caster derefter ptr til en int*-pegepind for at få adgang til og udskrive værdien af num.

question mark

Hvad betyder det at bruge void som returtype for en funktion i C++?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 4. Kapitel 3
some-alt