Klausimai, pažymėti „aiškiu konstruktoriumi“

„C ++“ priešdėlyje konkretus konstruktoriaus raktinis žodis neleidžia kompiliatoriui naudoti šio konstruktoriaus netiesioginėms konversijoms.
11
atsakymai

Ką reiškia aiškus raktinis žodis?

Ką reiškia aiškus raktinis žodis C ++?
rugsėjo 23 d '08 4:58 val
11
atsakymai

C ++ pasenusi konversija iš eilutės konstantos į „char *“

Turiu klasę su privačia char str [256]; ir už tai turiu aiškų konstruktorių: aiškų „myClass“ (const char * func) {strcpy (str, func); } Aš tai vadinu: myClass obj („pavyzdys“); Kai jį surenku, gaunu tokį įspėjimą ...
nustatyti spalio 06 '09 11:45
4
atsakymai

Aiškus konstruktorius, turintis kelis argumentus

Ar (naudingas) poveikis turi konstruktorių, turintį keletą aiškių argumentų? Pavyzdys: A klasė {public: aiškus A (int b, int c); // ar yra aiškus (naudingas) efektas? };
Nustatykite rugpjūčio 24 d „16“ 14:29 val
4
atsakymai

Ką gali suklysti, jei inicijuojant atvejų sąrašą leidžiama aiškiais konstruktoriais?

C ++ standarte, §13.3.1.7 [over.match.list], nurodoma: inicijuojant kopijų sąrašą, jei konstruktorius yra aiškus, inicijavimas yra blogai suformuotas. Štai kodėl negalime kažko panašaus padaryti, pavyzdžiui: struct foo {// ...
nustatyti 06 vas '12 10:49
5
atsakymai

Kodėl numatytieji numatytieji konstruktoriai ir konstruktoriai turi du ar daugiau parametrų (o ne numatytąjį)?

Suprantu, kad konstruktoriai, turintys vieną (ne numatytąjį) parametrą, veikia kaip netiesioginiai konverteriai, konvertuojantys iš šio tipo parametro į klasės tipą. Tačiau aišku galima naudoti bet kuriam konstruktoriui, be ...
gruodžio 17 d '10, 5:17
5
atsakymai

Aiškus judesio konstruktorius?

Aiškus raktinis žodis rekomenduojamas daugeliui visų konstruktorių, kurie gali būti vadinami vienu argumentu, išskyrus kopijavimo konstruktorius. Kopijavimo konstruktoriams ji gali naudoti (uždrausti ...
nustatyti liepos 20 d. 11 val
3
atsakymai

Ar yra trūkumas, kad aiškiai atskiriami visi C ++ konstruktoriai?

Keletą kartų koduojant kodą, pamiršau pridėti aiškų raktinį žodį, kai pridėjau parametrą konstruktoriui, nenurodant parametrų ar ištrinant parametrus iš anksčiau daugiaparametrų konstruktoriaus. Norėdami to išvengti, aš esu įpratęs ...
balandžio 18 d '11, 16:14
3
atsakymai

C ++ 11: inicijavimas klasėje su „= {}“ neveikia su aiškiu konstruktoriumi

C ++ 11, mes galime atlikti inicializavimą klasėje, naudodami „bracket-arba-equal-initializer“ (žodis iš standarto), pavyzdžiui: struct Foo {/ * explicit * / Foo (int) {}}; struct Bar {Foo foo = {42}; }; Bet jei nepateikiame komentarų ex ...
nustatyti Oct 01 '14, 11:37
5
atsakymai

Užkirsti kelią nepageidaujamam transformatoriui konstruktoriuje

Atsižvelgiant į tai, aišku: nurodo konstruktorius ir transformatorių operatorius (pradedant nuo C ++ 11), kurie neleidžia daryti netiesioginių konversijų ar kopijų inicijavimo. Taigi, ar šie du metodai yra identiški? struct Z {// ... ...
nustatytas 19 d „16“ 5:53 val
2
atsakymai

Jei naudoju aiškų konstruktorių, ar turiu įdėti raktinį žodį į .h ir .cpp failus?

Iš tikrųjų mano klausimas yra viskas pavadinime. Bet kuriuo atveju: turiu klasę ir naudoju aiškų konstruktorių: .h class MyClass {public: aiškus MyClass (const string s): užklausa (-os) {} private: string query; } Būtina arba ne ...
lapkričio 8 d. '08 0:03
3
atsakymai

Koks skirtumas tarp aiškios ir netiesioginės priskyrimo C + +

int vertė = 5; // šis priskyrimo tipas vadinamas aiškiu priskyrimu int reikšme (5); // šis užduoties tipas Koks yra skirtumas tarp tų, jei tokių yra, ir kokiais atvejais atskirti aiškų ir numanomą paskyrimą ...
birželio 17 d. 10 val
2
atsakymai

Kada reikia inicijuoti kopiją tiesioginiu inicijavimu?

Ar tai tik pirmenybė, ar yra konkrečių atvejų, kai to reikia kitam? Turiu omenyje šias iniciacijos parinktis T t (e); // tiesioginis inicijavimas T t = e; // kopijavimo inicijavimas
lapkričio 27 d. '10, 22:59
1
atsakymas

Aiškūs numatytieji konstruktoriai C ++ 17

C ++ 17, tuščios žymos rūšys standartinėje bibliotekoje dabar turi numatytuosius konstruktorius, pažymėtus kaip aiškius, taip pat = numatytąjį. Pavyzdžiui, dabar std :: piecewise_construct_t yra apibrėžiamas kaip struktūros piecewise_construct_t {aiškus gabalas ...
gegužės 25 d. 17 d. 2:48
2
atsakymai

Koks yra „std :: unique_ptr <T> konstruktoriaus iš T * argumentas, kuris yra aiškus?

Kadangi std :: unique_ptr suteikia patogų būdą išvengti atminties nutekėjimo ir garantuoja išimčių saugumą, tikslinga juos perduoti, o ne žaliavinius nurodymus. Taigi, jūs galite turėti (nario) funkciją su std :: unique_ptr <some_type> tipo parašu ...
nustatyti 28 rug. '15, 14:27
1
atsakymas

Aišku N-ary statytojams?

Šiame pristatyme: http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf Autorius siūlo, kad N-ary dizaineriai gavo naudos iš C ++ versijos, kurioje yra aiški raktinio žodžio versija 11. Kokie pakeitimai ...
Gruodžio 15 d. '12 0:29