C++ fordítási hiba, segítséget kérnék! (? )
Í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);
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!