alapértelmezett konstruktor - verem túlcsordulás az orosz
Tekintsük a következő példát programot
Kimenetét a konzolon:
Egy másik fontos különbség, hogy egy osztály csak egy kivitelező egy adott aláírás, és a többi osztályban három konstruktőri különböző aláírásokat.
Vegyünk egy másik demo
Itt a C osztályba, akkor állapítsa meg az alapértelmezett konstruktor B osztályú barátként C osztályban azonban nem lehet csinálni ugyanazt az alapértelmezett konstruktor A. osztályú bejelenteni barátja C osztály Mivel az alapértelmezett kivitelező osztály egy másik aláírását.
Már van, hogy írjon
de ez nem lehet mit szeretne kapni. Azaz, ha például akart egy másik konstruktort, amely az úgynevezett paraméterek nélkül csak.
Azaz megint hol vannak tervezők, a lehetőségek szélesebb.
Ha figyelembe vesszük, nem konstruktőrök, valamint a beosztás, a különbség még jelentősebb.
Alapértelmezett érvek nem érintik a funkció típusát. Ezért például ha kijelentem hasonló függvény
majd, annak ellenére, az alapértelmezett érv, és az a tény, hogy okozhat mind
Mindazonáltal annak void típus (int, int). És ez viszont azt jelenti, hogy nem lehet, például levelet
mivel a funkciók H típusú paramétert void (int). és egy függvény, mint a típusú argumentumot void (int, int)
Ha nyilvánítja a két funkció egy helyett
ezt a hívást
Ez lesz a helyes, mivel van egy egy paraméterrel.
Különbségek már kifejtette @Vlad Moszkva, én csak arra utalnak, hogy a két lehetőség a kérdés, egy harmadik lehetőség:
Véleményem szerint ez az opció a legjobb, mert azt egy explicit konstruktor egyetlen érv, ami egy jó gyakorlat, és segít elkerülni néhány buktatókat. Másrészt, explicit tervezők, akik többé-kevésbé ugyanazokat az érveket, véleményem szerint felesleges. mert véletlenül létrehoz egy objektumot egynél több érv is problematikus, nevezetesen, hogy mi tudható explicit odnoargumentnova tervező - a véletlen hiba védelmet.
És ami a legfontosabb, már csak egy kivitelező, hogy inicializálja a területen. Minden további munkát rajta, ami segít csökkenteni a kezdeti hibája.
Válaszol december 4 '15 at 05:36