Kezdőoldal » Számítástechnika » Programozás » Hogy orvosolható ez a class...

Hogy orvosolható ez a class művelet c++ban?

Figyelt kérdés

Van egy Character ősosztályom. Mivel minden karakternek meghatározott spelljei vanna és a spellnek vannak azonos tulajdonságaik, metódusaik ezért a spellnek is csináltam egy osztályt.


Ezt a spellt akarom beletenni a Charakter-be.


class Character

{

.....

Spell spell1;

Spell spell2;

.....

}


A gondom az hogy, mivel minden karakter spelljei más más nevűek, ezért a spell osztályon belül van egy string spellName, ezt a Spell konstruktora alapból spellName = ""; -re állítaná be és egy másik konstruktor bemeneti paraméterként kapnámeg a nevet az egyes karaktereken belül.


Tehát addig jutottam, hogy:


Spell::Spell()

{

spellName = "";

}



Spell::Spell(string sp)

{

spellName = sp;

}


Viszont a Character::Character()

{

.....

}


Ide hibát jelez "No matching function for call Spell::Spell", amit ebben az esetben nem tudok értelmezni.



2016. márc. 21. 20:03
 1/8 anonim ***** válasza:
Írd le azt a sort is ahová hibát jelez.
2016. márc. 21. 20:20
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Character::Character() ide jelzi a hibát.


Ez általában akkor szokott előjönni, ha valmi nem stimmel a paraméterekkel, ha jól tudom.


Csak enmtudom, hogy mi.

2016. márc. 21. 20:31
 3/8 anonim ***** válasza:

Ugye nem a Character osztályba írtad a következőt:


Spell::Spell()

{

spellName = "";

}

2016. márc. 21. 20:52
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Hát ez alapján nemigen lehet semmit mondani, egy wild guess: headerek be vannak include-olva megfelelően?

A Spell osztályleírásában fel van véve a default és a paraméterezett konstruktor is?

2016. márc. 21. 20:52
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

3-as válaszoló: Nem ez a spellcpp-ben van.


4-es válaszoló: Az első kéréds igaz, teht minden bevan iclude-olva.

A második kérdés nem igaz. Nem tudtam, hogy oda-vissza szükséges a dolog.

2016. márc. 21. 21:05
 6/8 anonim ***** válasza:
75%
Igen, erre oda kell figyelni, az osztálydefinícióban fel kell venni MINDEN metódust, amit meg fogsz írni, még a default konstruktort/destruktort is.
2016. márc. 22. 01:26
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

"No matching function for call Spell::Spell"


Ez elvileg azt jelenti, hogy mikor létre akarja hozni a spell objektumot, nem talál hozzá paraméter nélküli konstruktort. Ellenőrizd, hogy a headerben is ott van-e a Spell::Spell() konstruktor.

2016. márc. 24. 17:21
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

" Spell::Spell() konstruktor "

Na bocs, szóval a "Spell();" deklaráció.

2016. márc. 24. 17:23
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!