I am trying to override the method in parent class Animal speak function but it is not working. Wrote exactly similar code in java it prints correct message but not in C++. Do I have to do something different in C++ to make this work?
class Animal{
public:
virtual void Speak(){
cout<<"Animal Speak"<<endl;
}
};
class Cat:public Animal{
void Speak() override {
cout<<"Cat speak"<<endl;
}
};
class Dog:public Animal{
void Speak() override {
cout<<"Dog speak"<<endl;
}
};
int main() {
Cat cat;
Dog dog;
Animal ani[]={cat,dog};
ani[0].Speak();
return 0;
}
I am expecting "Cat Speak" to printout in console but it is printing "Animal Speak".