Klausimai, pažymėti „trimis taisyklėmis“

Trys taisyklė (dar vadinama „Big Three“ arba „Big Three“) yra „C ++“ nykščio taisyklė, kurioje teigiama, kad jei klasė apibrėžia vieną iš šių dalykų, ji turi aiškiai apibrėžti visus tris: destruktorių, kopijavimo konstruktorių, priskyrimo operatorių
8
atsakymai

Kas yra trijų taisyklių taisyklė?

Ką reiškia objekto kopijavimas? Kas yra kopijavimo kūrėjas ir kopijos priskyrimo ataskaita? Kada turiu juos paskelbti? Kaip galiu išvengti savo objektų kopijavimo?
nustatyti lapkričio 13 d '10, 16:27
8
atsakymai

Trečioji taisyklė tampa penkių taisyklių taisykle C + 11?

Taigi, peržiūrėjusi šią nuostabią paskaitą apie „rvalue“ nuorodas, aš maniau, kad kiekviena klasė turėtų naudos iš tokio „perkėlimo konstruktoriaus“, redaguotų šabloną <T klasė> MyClass (T kiti) ir, žinoma, „paskirties perkėlimo operatorių ...
nustatyti 24 sausis '11, 4:51 val
3
atsakymai

Išimtis iš trijų taisyklių?

Aš daug skaitau apie „C + +“ trimis taisyklėmis. Daugelis prisiekia tuo. Bet kai nurodoma taisyklė, ji beveik visada apima žodį „paprastai“, „tikriausiai“ arba „įmanoma“, nurodant išimčių buvimą. Nematau daug diskusijų apie tai, ką šie išskirtiniai elementai gali būti ...
kovo 21 d., 23:27
3
atsakymai

Saugus priskyrimas ir idiomas „kopijuoti ir keisti“

Aš mokau C + +, ir neseniai sužinojau (čia stekų perpildymas) apie kopiją ir pakeisti idiomą, ir turiu keletą klausimų apie tai. Taigi, manau, kad turiu šią klasę, naudodamas idiomą su kopijavimu ir pakeitimu, pavyzdžiui: klasė Foo {p ...
gegužės 06 d. 11 d
5
atsakymai

Objekto C + + kopijavimo konstruktorius + žymeklis

Aš stengiuosi mokytis „didžiųjų trijų“ C + +. Man pavyko padaryti labai paprastą programą „didiesiems trims“. Bet aš nesu įsitikinęs, kaip naudoti rodiklį į objektą. Kitas yra mano pirmasis bandymas. Turiu abejonių, kai parašiau tai ...
rugsėjo 18 d '10, 8:07
2
atsakymai

Suprasti -WeffС ++

Apsvarstykite šią programą: #include <string> struct S {S () {} private: void * ptr = nullptr; std :: string str = ""; }; int main () {} Tai, jei kompiliuojama su -Weffc ++ GCC 4.7.1, bus išspaudžiama: įspėjimas: 'struct S' turi poi ...
liepos 16 d., 12 val
3
atsakymai

Objektų saugojimas STL vektoriuje yra minimalus metodų rinkinys.

Kas yra „minimali struktūra“ (būtini metodai) sudėtingam objektui (su aiškiais vidiniais duomenimis), kuriuos norėčiau laikyti STL talpykloje. <vector>? Mano prielaidoms (kompleksinio „Doit“ objekto pavyzdys): #include <...
yra nustatytas kovo 23 d., 10.30 val
2
atsakymai

Ką daryti su kopijavimo konstruktoriumi, jei klasėje yra vartotojo deklaruotas destruktorius?

12.8 / 7 skirsnio standartas nurodo: Jei klasės apibrėžimas aiškiai nenurodo konstruktoriaus kopijos, vienas yra netiesiogiai paskelbtas. Jei klasės apibrėžimas nurodo perkėlimo konstruktorių arba perkėlimo perkėlimo operatorių, netiesiogiai deklaruotas konstruktorius ...
lapkričio 1 d. '14, 11:23
0
atsakymai

Ar c + + sąsaja turi atitikti 5 taisyklę?

Koks yra teisingas būdas deklaruoti egzempliorių kūrimo metodus apibrėžiant sąsajos klasę? Dėl akivaizdžių priežasčių, abstrakčios bazinės klasės turėtų turėti virtualų destruktorių. Vis dėlto šis įspėjimo įspėjimas: "InterfaceCla ...
nustatytas balandžio 22 d '18, 4:49
5
atsakymai

Ar priskirtas C + +, ar objektas, kurį paskyrėme, sunaikintas?

Ar nutekėjo šis kodo fragmentas? Jei ne, kur sunaikinami du objektai, kurie yra pastatyti į foobar ()? B klasė {int * mpI; viešas: B () {mpI = naujas int; } ~ B () {ištrinti MPI; }}; negaliojantis foobar () {b b; b = b (); // cau ...
nustatyti 03 gruodis '10, 3:50
1
atsakymas

3 taisyklė Numatytasis C + 11 narių nuokrypis 11

Vadovaujantis žemiau esančia gerai žinoma lentele, automatinis numatytojo kopijavimo kompiliatoriaus konstruktoriaus generavimas ir kopijavimo paskirties vieta yra pasenusi C ++ 11, kai vienas ar keli kopijavimo atvejai, kopijavimo konstruktorius ir destruc ...
birželio 8 d. 17 d. 11:47
2
atsakymai

Ar yra kokių nors statinių analizės priemonių, kurios bando 3 taisyklę (arba 5 taisyklę C ++ 11)

Šiuo metu dirbau su kodo pagrindu, pastatytu smėlio pagrindu. Yra daug klasių tariamai išbandytose bibliotekose, pažeidžiančiose 3 taisyklę. Dauguma skelbia ne trivialų destruktorių, bet ar jie trūksta ...
gegužės 07 d., 13 val
3
atsakymai

Trečiosios taisyklės C + +

Aš perskaičiau, kad „trijų taisyklė“, kas yra trijų taisyklių taisyklė, atrodo taip: Jei reikia aiškiai paskelbti destruktorių, kopijavimo konstruktorių arba paskirti operatoriaus kopiją, tikriausiai reikia aiškiai paskelbti visus tris. Mano klausimas yra: ...
nustatytas birželio 14 d., 12 val
1
atsakymas

penkias ir netiesiogiai nutolusias funkcijas

Mano supratimu penkta taisyklė yra taisyklė. Nors aš pastebėjau, kad kai kuriuose scenarijuose kompiliatorius netiesiogiai gali paslėpti funkcijas. Pavyzdžiui, apibrėžiant judesį, kopijavimo / kopijavimo operatorius bus ištrintas. Norėčiau sužinoti, ar yra scenos ...
nustatyti 25 rugsėjis '17, 13:27
5
atsakymai

Ar aš sulaužau trijų taisyklių?

Neseniai perskaičiau trijų taisyklių, ir man įdomu, ar aš ją pertraukiu? Mano GUI programoje tokios klasės, kaip MainFrame, Interface, Circuit, Breadboard ir kt. (klasės pavadinimai yra apytiksliai), kiekviena iš jų turi vieną kopiją. Jų const ...
04 Feb rinkinys '12, 10:09