Kezdőoldal » Számítástechnika » Programozás » Konstruktor, hogyan lehetne...

Konstruktor, hogyan lehetne megvalósítani? (Nagyon egyszerű, de nem értem)

Figyelt kérdés

Egy main-ben lévő kódhoz kell kiegészítő függvényeket/structokat írni, hogy lefusson.


Ez van a main-ben:


Ember e1;

ellenoriz(e1.nev == "Lajos", pont);


Ember e2("Alajos");

ellenoriz(e2.nev == "Alajos", pont);


Amit csináltam hozzá:


struct Ember{

string nev="Lajos";

Ember(string n)

{nev=n;}}


De ezzel nem működik... hogy kéne megcsinálni?



2019. máj. 21. 15:42
 1/2 anonim ***** válasza:

Amikor deklarálod az "e1" változót a fordító egyértelmű hibaüzenetet ad:

xyz.cpp: In function ‘int main()’:

xyz.cpp:**:*: error: no matching function for call to ‘Ember::Ember()’

Ember e1;


Tehát hiányzik egy olyan konstruktor metódus, ahol nincs bemeneti paraméter.


Szóval valahogy így alakítanám át:

[link]

2019. máj. 21. 16:34
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Alapvetően a fordító automatikusan generál minden osztályhoz/adatszerkezethez default konstruktort, azaz olyat, ami 0 paramétert vár. Viszont ez csak akkor igaz, ha nincs explicit módon megadva konstruktor. Onnantól, hogy te kézzel megadsz egy vagy több konstruktort a struktúrádhoz, onnantól azok lesznek az egyedüli konstruktorok.


Namost, amikor te leírod, hogy

Ember e1;

Akkor valójában meghívódik az Ember osztály default konstruktora. Illetve meghívódna, de nincs neki, mivel te nem adtál meg default konstruktort, a fordító pedig nem generált hozzá. Fontos, hogy hacsak nem akarod explicit módon tiltani egy osztály esetében a default konstruktort, akkor figyelj oda, hogy vagy legyen kézzel megadva hozzá, vagy egyáltalán ne legyen kézzel megadott konstruktor.

2019. máj. 21. 20:46
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!