Kezdőoldal » Számítástechnika » Programozás » C++ ezen inicializációk közti...

C++ ezen inicializációk közti különbség?

Figyelt kérdés

int a(10);

int b = (10);

int c = int(10);


int d{10};

int e = {10};

int f = int{10};


2015. márc. 29. 15:15
 1/3 anonim ***** válasza:
2015. márc. 29. 16:51
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

int a(10):

A konstruktort hívod egy const paraméterrel.

(gyakorlatilag legalább 1 általad definiált függvényhívás)


int b = (10);

A konstruktor hívod majd az értékadó operátort const paraméterrel. (gyakorlatilag legalább 2 általad definiált függvényhívás)


int c = int(10);

A konstruktort hívod majd egy jobb oldali érték konstruktorát, majd a bal oldali típus értékadó operatátorát a jobb oldali típusnak megfelelő paraméterrel. (gyakorlatilag legalább 3 általad definiált függvényhívás)


Ezek hasonló módon működnek csak c++11-es szabvány szerinti inicializáló listával:

int d{10};

int e = {10};

int f = int{10};


Aminek érdemes utána nézni: lvalue, rvalue, constructor, operator, overloading

2015. márc. 30. 13:21
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Köszönöm a válaszokat.

Kiegészítésként annyi, hogy a C++11 -es inicializáció fordítás idejű hibát add, ha:


int -ben akarsz doublet tárolni


pl:


int a{1.0};

2015. márc. 30. 20:37

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!