Mit jelent ez a sor? C++
/*Ezt a sort nem értem:
Cat *pRealCat = dynamic_cast<Cat *> (Zoo[i]);
---------
A 24 órás könyvből tanulok.*/
//main.cpp
# include <iostream>
typedef unsigned short ushort;
typedef unsigned int uint;
using namespace std;
class Mammal {
public:
Mammal(short age): itsAge(age) { cout <<"Mammal Konstruktor \n"; }
Mammal(const Mammal &rhs);
virtual ~Mammal() { cout <<"Mammal virtual Destruktor \n"; }
virtual Mammal* Copy()const { return new Mammal(*this); }
virtual void Speak()const { cout <<"Mammal beszel \n"; }
void SetAge(short age) { itsAge = age; }
short GetAge()const { return itsAge; }
protected:
short itsAge;
private: };
Mammal::Mammal(const Mammal &rhs): itsAge(4) {
cout <<"Mammal copy Konstruktor \n"; }
class Dog: public Mammal {
public:
Dog(short age): Mammal(age) { cout <<"Dog Konstruktor \n"; }
Dog(const Dog &rhs);
virtual ~Dog() { cout <<"Dog virtual Destruktor \n"; }
virtual Mammal* Copy()const { return new Dog(*this); }
virtual void Speak()const { cout <<"Vau,vau \n"; }
protected:
private: };
Dog::Dog(const Dog &rhs): Mammal(rhs) {
cout <<"Dog copy Konstruktor \n"; }
class Cat: public Mammal {
public:
Cat(short age): Mammal(age) { cout <<"Cat Konstruktor \n"; }
Cat(const Cat &rhs);
virtual ~Cat() { cout <<"Cat virtual Destruktor \n"; }
virtual Mammal* Copy()const { return new Cat(*this); }
virtual void Speak()const { cout <<"Miau,miau \n"; }
void Purr()const { cout <<"prrrrrrrrrrr \n"; }
protected:
private: };
Cat::Cat(const Cat &rhs): Mammal(rhs) {
cout <<"Cat copy Konstruktor \n"; }
int main() {
const short numberMammal = 3;
Mammal *Zoo[numberMammal];
Mammal *pMammal = NULL;
short choice,i;
for(i = 0;i < numberMammal;i++) {
cout <<"(1)Dog,(2)Cat: ";
cin >> choice;
if(choice == 1)
pMammal = new Dog(2);
else
pMammal = new Cat(2);
Zoo[i] = pMammal; }
cout << endl;
for(i = 0;i < numberMammal;i++) {
Zoo[i]->Speak();
Cat *pRealCat = dynamic_cast<Cat *> (Zoo[i]);
if(pRealCat)
pRealCat->Purr();
else
cout <<"Huha ez nem macska \n";
delete Zoo[i];
cout << std::endl; }
return 0; }
Köszönöm jessyy erre vártam ilyen sokat hát ijen nehéz lett volna le írniuk a többieknek.
De amúgy kijavítanálak mert szerintem nem egy objektumot ad vissza hanem annak memóriacímét.
További 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!