Kezdőoldal » Számítástechnika » Programozás » C++ fordítási hiba, segítséget...

C++ fordítási hiba, segítséget kérnék! (? )

Figyelt kérdés

Így nézne ki a programom,a lényege az hogy egy "Cat" osztályon belül két "macskát" példányosítottam a dinamikus memóriában,és amikor megakarom a main() függvény elején változtatni a második macska életkorát,súlyát akkor hibát ír ki. A program végére odaírtam a hibát.Előre is köszönöm a segítséget.


#include <iostream>

using namespace std;


class Cat

{

public:

Cat() { itsAge=3;itsWeight=5;}

~Cat() {}

void SetAge(unsigned int age) { itsAge=age; }

unsigned int GetAge() const { return (itsAge); }

void SetWeight(unsigned int weight) { itsWeight=weight; }

unsigned int GetWeight() const { return (itsWeight); }

private:

unsigned int itsAge;

unsigned int itsWeight;

};


int main()

{

Cat * pCat = new Cat;

Cat * pCat1= new Cat;

*pCat1->SetAge(10);

*pCat1->SetWeight(7);

cout << "Az egyik macska neve Frisky, o most " << pCat->GetAge() << " eves, es ";

cout << pCat->GetWeight() << " kg " <<endl;

cout << "Az masik macska neve Tigris, o most " << pCat1->GetAge() << " eves, es ";

cout << pCat1->GetWeight() << " kg " <<endl;

delete pCat;

delete pCat1;

return 0;

}


Íme a hiba:


In function 'int main()':|

|22|error: void value not ignored as it ought to be|

|23|error: void value not ignored as it ought to be|

||=== Build finished: 2 errors, 0 warnings ===|

Erre írja a hibát:

*pCat1->SetAge(10);

*pCat1->SetWeight(7);


2011. ápr. 16. 16:42
 1/2 anonim ***** válasza:

Vagy így írd:

pCat1->SetAge(10);

pCat1->SetWeight(7);

Vagy így:

(*pCat1).SetAge(10);

(*pCat1).SetWeight(7);

A -> eleve pointerekhez van, illetve a * operátornak a precedenciája kissebb, mint a ->-é, így annak visszatérési értékét akarja dereferálni (pointer visszaalakítása értékké), ezért kell a zárójel.

2011. ápr. 16. 16:50
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Értem, tehát pCat1->SetAge(10), így a metódusra hivatkozik, viszont ha előtte van egy csillag, akkor a metódus visszatérési értékére hivatkozna, de annak is egy pointernek kéne lennie ,így viszont át kéne írnom az egész tagfüggvényt.Na igen, ebből is látszik hogy még kezdő vagyok :D
2011. ápr. 16. 17:23

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!