Klausimai pažymėti kaip „statinis“

„C ++“ konversijos operatorius konvertuojant iš vieno tipo į kitą, naudojant tik informaciją apie vykdomo objekto statinį tipą
7
atsakymai

Koks skirtumas tarp statinio_pasaulio <> ir C stiliaus?

Ar yra kokių nors priežasčių, kodėl pageidaujate statinio_pasaulio <>, kad C stilius būtų puikus? Ar jie atitinka? Ar jie turi kokio greičio skirtumą?
22 val. '09 21:37
4
atsakymai

Ar turėčiau naudoti statinį vaizdą arba reinterpret_cast, kai visiems yra tuščias *

Atrodo, kad tiek statinis_pasaulis, tiek reinterpret_cast veikia puikiai, jei norite perkelti negaliojančią * į kitą rodyklės tipą. Ar yra geros priežasties viena kitai paremti?
lapkričio 22 d. '08 1:39
4
atsakymai

static_cast with boost: shared_ptr?

Kas yra statinio_pagalbos su padidinimu :: shared_ptr ekvivalentas? Kitaip tariant, kaip perrašyti kitą bazę * b = new Derived (); Išvestinė * d = static_cast <Derived *> (b); kai naudojate shared_ptr? boost :: shared_ptr <Base> b (naujas išvestinis ()); ...
nustatytas kovo 09'09, 5:47
7
atsakymai

C + + negali konvertuoti iš A bazės į išvestį B tipą per virtualią bazę A

Turiu tris klases: A klasė {}; B klasė: virtuali visuomenė A {}; C klasė: virtuali visuomenė A {}; D klasė: viešoji B, viešoji C {}; Bandymas statiniu veiksmu iš A * į B * gaunu šią klaidą: negaliu konvertuoti iš bazės į išvestį B tipą ...
rugsėjo 19 d '10, 22:04
7
atsakymai

Kodėl C ++ sistemoje yra reinterpret_cast, kai dviejų grandinių statinis pranešimas gali atlikti savo darbą?

Tarkime, kad noriu atmesti A * į char * ir atvirkščiai, mes turime dvi galimybes (turiu galvoje, daugelis iš mūsų mano, kad turime du pasirinkimus, nes abu atrodo, kad jie dirba! ): A struktūros {int age; char pavadinimas [12 ...
nustatyti 17 vas '11, 9:43
1
atsakymas

Kaip veikia qobject_cast?

Aš tiesiog suradau šį kodą „Qt“, ir aš šiek tiek painu tai, kas čia vyksta. Visų pirma, ką reinterpret_cast <T> (0) daro? šablonas <class T> inline T qobject_cast (const QObject * objektas) {// tai sukels kompiliaciją ...
gruodžio 23 d. '10, 14:02
3
atsakymai

Teisingas būdas įvesti žymeklio tipus

Turint šį kodą (ir faktą, kad VirtualAlloc () grąžina tuščią *): BYTE * pbNext = reinterpret_cast <BYTE *> (VirtualAlloc (NULL, cbAlloc, MEM_COMMIT, PAGE_READWRITE)); kodėl vietoj statinio_pasirinkimo yra pasirinktas „reinterpret_cast“? Aš anksčiau ...
yra nustatytas kovo 22 d., 13 val
3
atsakymai

Kodėl negaliu statyti „char *“ ir „unsigned char *“ *?

Matyt, kompiliatorius laiko juos nesusijusiais tipais, todėl reinterpret_cast reikalingas. Kodėl tai yra taisyklė?
nustatytas balandžio 14 d '12 10:21
6
atsakymai

Kodėl static_cast negali būti naudojamas nusileidimui, kai įjungtas virtualus paveldėjimas?

Apsvarstykite šį kodą: struct Base {}; struct Išvestinė: viešoji virtuali bazė {}; void f () {Base * b = new Išvestinis; Išvestinė * d = static_cast <Derived *> (b); } Tai draudžia standartas ([n3290: 5.2.9 / 2]), todėl kodas nėra sudarytas, ...
nustatytas rugsėjo 20 d '11 15:10
2
atsakymai

Dawntown deimantų hierarchijoje

Kodėl static_cast negali atsijungti nuo virtualios duomenų bazės? struct A {}; B struktūra: viešoji virtuali A {}; struct C: viešoji virtuali A {}; struct D: viešoji B, viešoji C {}; int main () {D d; A a = d; ...
gegužės 18 d., 11 val
1
atsakymas

Kodėl (int 0 yra blogai suformuotas?

Pagal [expr.cast] / 4, C stiliaus liejiniai bando įvykdyti šiuos užsakymus: const_cast static_cast static_cast, po to - const_cast reinterpret_cast reinterpret_cast, po to - const_cast Ši kompozicija yra gerai suformuota ...
nustatė kovo 31 d. 18 val. 0:47
3
atsakymai

ar yra skirtumas tarp statinės prievartos rvalue ir std :: move

Statinio mąstymo aprašymas Jei naujas_pavadinimas yra rvalue pamatinis tipas, static_cast konversioja išraiškos vertę į xvalue reikšmę. Šio tipo static_cast naudojamas siekiant pereiti prie std :: move. (Nuo C + ...
yra nustatytas birželio 17 d. 13 val
1
atsakymas

C + + statinis_pasaulis

Žr. Toliau pateiktą kodą. a) Ar šis atvejis (paprastas paveldėjimas, jokie virtualūs nariai) neturi statinio „B“ įrašo :: df () turi bet kokią pridėtinę vertę (iš tikrųjų)? Radau kai kuriuos prieštaringus atsakymus į šiuos klausimus, todėl prašau ...
yra nustatytas birželio 22 d. 11 val
1
atsakymas

Kodėl std :: forward grąžinti static_cast <T o ne static_cast <T>?

Paimkite funkciją Y, kuri perkrauna: negalioja Y (int lvalue) {cout << "lvalue!" << endl; } void Y (int rvalue) {cout << "rvalue!" << endl; } Dabar mes nustatome šablono funkciją, kuri veikia kaip std :: forwa ...
yra nustatytas liepos 07 d. 16, 20:23
1
atsakymas

Ar teisėta, kad rodytumėte rodyklę į masyvo nuorodą, naudodami statinį „C ++“?

Turiu T * pValues ​​rodyklę, kurią norėčiau matyti kaip T (ir vertes) [N] Šiame atsakyme SO ngn-wiki.ru.site/questions/380318 / ... siūlomas būdas tai padaryti yra T (ir vertės) [N] = * statinis_pasaulis <T (*) [N]> (static_cast <void *> (pValues)) ...
nustatytas sausio 23 d '14, 10:03 val