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 Konsepter
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
C++ Datatyper

bookVoid-datatypen

Sveip for å vise menyen

Du må alltid spesifisere typen fordi det er et statisk typet språk. Kompilatoren må vite den eksakte typen til hver variabel for å tildele riktig mengde minne og for å sikre typesikkerhet. Den må også vite typene til returverdier og parametere for funksjoner.

Note
Merk

Et statisk typet språk er et hvor datatypen til en variabel eksplisitt deklareres og håndheves av kompilatoren.

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 tilfellet kreves det ikke en spesifikk returtype; det kan være int, double, float eller bool. For dette scenariet spiller den eksakte typen ingen rolle. Faktisk, hva om vi ikke trenger å returnere noe i det hele tatt?

Void som returtype for funksjoner

Det finnes ofte funksjoner som tilsynelatende ikke trenger å returnere noe, slik 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 tilfellet kan vi bruke datatypen void. Datatypen void i programmering indikerer fravær av enhver verdi eller type. Den kan brukes på mange forskjellige måter, men for funksjoner brukes den vanligvis til å angi at en funksjon ikke returnerer noen verdi.

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!"); }

Merk

Vi brukte nøkkelordet return, men sendte faktisk ikke med noen verdi. Nøkkelordet return kan også utelates i void-funksjoner. Prøv å fjerne det i eksempelet.

Void som peker

Void-pekerne (void*) er pekere som ikke har en spesifikk datatypetilknytning. De kan peke til hvilken som helst type objekt, men du må caste dem til riktig type før de brukes. De er svært nyttige, men noen ganger vanskelige å 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 eksemplet er ptr en void-peker som peker til et heltall (num). Vi caster deretter ptr til en int*-peker for å få tilgang til og skrive ut verdien til num.

question mark

Hva betyr det å bruke void som returtype for en funksjon i C++?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 3
some-alt