小编Mel*_*oks的帖子

如何在if语句中使用dynamic_cast

所以我有一个简单的任务要做.从一个基类派生出3个类.它们非常简单,将在下面提供.我需要做的是创建一个名为的新类PolymorphicAnimal,它将能够像animalAnimal基类派生的任何其他类一样运行.确切地说,他们需要做的就是在SoundOff调用方法后显示正确的文本.我猜我需要在dynamic_cast这里使用.我的问题是,什么是使用正确的语法dynamic_cast作为一个if声明,并尽一切派生类需要有至少一个虚拟方法呢?

#include "stdafx.h"
#include <iostream>
#include <string>

class Animal {
public:
virtual std::string SoundOff() = 0;
};

class Dog : public Animal {
std::string SoundOff() override { return "Woof"; }
};

class Cat : public Animal {
std::string SoundOff() override { return "Meow"; }
};

class Cow : public Animal {
std::string SoundOff() override { return "Muu"; }
};

class PolymorphicAnimal : public Animal {
std::string …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast class base-class

0
推荐指数
2
解决办法
1090
查看次数

标签 统计

base-class ×1

c++ ×1

class ×1

dynamic-cast ×1