Kezdőoldal » Számítástechnika » Programozás » Hogyan kell C++-ban konstrukto...

Hogyan kell C++-ban konstruktorral értéket adni?

Figyelt kérdés

Á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


2016. máj. 5. 15:15
 1/3 anonim ***** válasza:

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? :))

2016. máj. 5. 15:26
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

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 */

... }

}

2016. máj. 5. 16:03
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
#2, hibátlan, csak ezzel az inicializáló móddal a struktúra-elem értékadás nem működik, ha jól tudom. Azt a függvény törzsében kell megadni.
2016. máj. 5. 16:06
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!