我在c ++中有4个类。动物是超级类,蛇和老虎继承自动物,但也继承自危险动物。我已经实现了一个函数来检查Snake或tiger是否是DangerousAnimal的一个实例。但是我发现在c ++中实现它有问题
我的代码是:
bool Vet::examine (Animal *someAnimal){
if(DangerousAnimal* s = dynamic_cast<DangerousAnimal*>(Animal)){
return false;
}else{
return true;
}
}
错误是
dillu24@dillu24-VirtualBox:~/Desktop/OOP/Lab1$ g++ -std=c++11 -oAnimalWellBeingLauncher AnimalWellBeingLauncher.cpp q1.cpp
q1.cpp: In member function ‘bool Vet::examine(Animal*)’:
q1.cpp:122:64: error: expected primary-expression before ‘)’ token
if(DangerousAnimal* s = dynamic_cast<DangerousAnimal*>(Animal)){
答案 0 :(得分:2)
dynamic_cast
的语法为dynamic_cast<TargetType>(variable)
,因此您必须撰写dynamic_cast<DangerousAnimal*>(someAnimal)
。