Hogyan kell C++-ban konstruktorral értéket adni?
Általános problémára tekintve. Az órán egy sort vettünk amit nem tudok hova rakni .
point(){pp.x=1; pp.y=1;}
point(unsigned int x, unsigned int y){this->pp.x=x; this->pp.y=y;}
~point(){};
az utolsó a dekonstruktor annyit tudok róla





Ez két konstruktor, amik túl vannak terhelve, vagyis azonos néven futnak, de mások a paramétereik. Az első paraméter nélkül alapértelmezett 1-et ad meg a két változónak, a második pedig átvesz két értéket, és azokat állítja be.
(Mi a kérdés? :))





nézzük az alábbi kódot. A "... " csak behúzás és nem része a programnak. Továbbá nem header-t használok, hanem azonnal írom a függvény definíciót is.
class A {
private:
... int x;
... int y;
public:
... A() : x(0), y(1) {
... ... /* kód */
... }
... A(int a, int b) : x(a), x(b) {
... ... /* kód */
... }
}
A() esetén az x attribútum 0-val inicializálódik, míg a y 1-el.
A(int a, int b) esetén a megadott értékeket veszik fel.
Öröklődés esetében csak az adott osztály tagváltozóit tudja inicializálni. Ősét nem, hiába protected vagy public. Így ős konstruktort "hívunk", különben az alap fut le.
Példa:
class BClass : public AClass {
private:
... int z;
public:
... B() : z(0) { // z=0, x=0 és y=1 lesz
... ... /* kód */
... }
... B(int a) : z(a) { // z=a, x=0 és y=1 lesz
... ... /* kód */
... }
... B(int a, int b) : z(a), AClass(a, b) { // z=a, x=a és y=b lesz
... ... /* kód */
... }
}





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!