INITIALISATION UNIFORME ET DESIGNATED INITIALIZERS

Salut ce forum apprends les bases du c++

Moderator: Rick

Post Reply
Hydraxx
Site Admin
Posts: 114
Joined: Mon Jan 12, 2026 4:04 pm
Location: France
Contact:

INITIALISATION UNIFORME ET DESIGNATED INITIALIZERS

Post by Hydraxx »

INITIALISATION UNIFORME ET DESIGNATED INITIALIZERS

À QUOI ÇA SERT ?

C++ possède historiquement plusieurs syntaxes d’initialisation.

Les accolades ont été introduites pour rendre l’initialisation plus uniforme et éviter certaines conversions dangereuses.


1. EXEMPLES

Code: Select all

int x{42};
double d{3.14};
std::string text{"Hello"};

2. ZÉRO

Code: Select all

int x{};
x = 0.

Code: Select all

double d{};
d = 0.0.

Code: Select all

int* ptr{};
ptr = nullptr.

C’est une excellente habitude.


3. NARROWING

Code: Select all

double d{3.14};
int x{d};
Le compilateur signale la perte potentielle.


4. STRUCT

Code: Select all

struct Point
{
    int x;
    int y;
};

Point p{10, 20};

5. DESIGNATED INITIALIZERS

Code: Select all

Point p{
    .x = 10,
    .y = 20
};
Pourquoi c’est utile ?

Parce que le sens de chaque valeur est visible immédiatement.

Avec :

Code: Select all

Config c{1, 0, 4096, true};
tu dois savoir ce que chaque argument représente.

Avec :

Code: Select all

Config c{
    .version = 1,
    .flags = 0,
    .bufferSize = 4096,
    .enabled = true
};
c’est beaucoup plus clair.


À RETENIR


{} :
  • syntaxe cohérente ;
  • initialisation explicite ;
  • réduction des variables non initialisées ;
  • protection contre certains narrowing.

Return to “Bases du C++”

Who is online

Users browsing this forum: No registered users and 1 guest