当前位置: 首页 > 知识库问答 >
问题:

知道C++中子类的类

微生宝
2023-03-14

我至少有7年没做过C++了,现在突然陷入了一个C++项目中。我想在以下方面得到一些指导:

我有一个叫做动物的类,我有三个继承自动物的类:猫,狗和鸟。我已经创建了一个列表对象,并正在使用它来存储类型动物。

共有1个答案

林冥夜
2023-03-14

你几乎肯定不想知道。您应该做的是声明为虚拟适当的方法来与这些动物交互。

如果需要对它们进行具体操作,可以使用visitor模式传递一个visitor对象,也可以在每个具体类中使用正确的数据。如果您坚持使用标记(我强调这是第三种选择--其他两种解决方案将使代码更加干净),那么使用一个名为classname的虚方法,它返回类型标识符(无论是字符串还是int或其他形式)。

另外请注意,如果您有一个对象类型的数组,而不是指针类型的数组,则要进行切片。如果您已经7年没有使用C++,您可能没有意识到模板使用的增长,从而使语言变得更好。查看boost之类的库,看看可以做什么,以及模板如何允许您编写类型推断的泛型代码。

 类似资料:
  • 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: class Animal(object): def __init__(self, name): self.name = name def greet(self): print '

  • 本文向大家介绍C++的锁你知道几种?相关面试题,主要包含被问及C++的锁你知道几种?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 锁包括互斥锁,条件变量,自旋锁和读写锁

  • 我正在使用产品的ms-sql db构建一个 asp.net 网站 - 每个产品属于一个或多个类别,每个类别可以属于一个或零个父类别。 用户应该能够选择零个或多个类别,但我想不出一种方法来只返回所选类别中的产品。 我有其他正在工作的过滤器(最低价格,品牌名称等),但不能让类别工作。 例如: 如果选择了类别1,则应返回具有最终父类别为类别1的类别的所有产品。 如果选择了子类别1.1和子类别1.2,则所

  • 问题内容: 在Django中,当您有一个父类和从其继承的多个子类时,通常可以通过parentclass.childclass1_set或parentclass.childclass2_set访问一个子类,但是如果我不知道我想要的特定子类的名称怎么办? 有没有一种方法可以在不知道子类名称的情况下沿parent-> child方向获取相关对象? 问题答案: (更新:对于Django 1.2及更高版本,

  • 我想使用ItemTouchHelper类,它应该在android Studio的标准安装中可用(所以我在互联网上写了)。 无论如何,当我尝试使用这个类时,我会收到一条错误消息。你们可以在图片中看到。错误帮助程序未知 我能做什么,分别实现必要的库ItemTouchHelper类。 请用简单的语言描述,并尽可能详细地描述,因为我是一个绝对的Android初学者:) 我很高兴能找到解决方案! 向费边致意

  • 我是C语言的新手,正在寻找关于以下问题的建议。我正试图创建一个程序,生成树的形状(是的,真正的树)。这些形状完全由树枝构成。为此,我开始编写一个名为Branch的类。主要的想法是。cpp I创建一个类Branch的实例,它本身将创建Branch的实例。这适用于迭代。 目前,该计划的结构如下: main.cpp: 树枝h: 树枝cpp: 现在,这个程序可以工作,但是我想通过将每个对象存储在一个向量中