在运行时使用继承的代码选择器

洛娃·比尔(LovaBill)

有没有一种方法可以在容器中插入抽象类?
。基类是否可以访问派生类?使用虚函数。
有没有办法使此示例代码正常工作,并使控制台吠叫容器
有没有办法vector保留实例而不是引用/指针?

std::vector只有在我使用实例的引用计数器的情况下,将指针存储在中才是安全的,这是我的最后选择。我想念什么吗?

class CAnimal
{
public:
    virtual void soundsLike()
    {
        cout<<"Base function\n";
    }   
};

class CDog: public CAnimal
{
public:
    void soundsLike()
    {
        cout<<"Woof\n";
    }
};

class CZoo
{
public:
    std::vector<CAnimal> animalList;

    void addDog()
    {
        animalList.push_back(CDog());
    }

};

控制台输出基本功能消息:

int main(int argc, char* argv[])
{
    CZoo nationalPark;
    nationalPark.addDog();
    nationalPark.animalList.front().soundsLike(); //Calls the base function.
    return 0;
}
luk32

你可以用 std::unique_ptr

std::vector< std::unique_ptr<CAnimal> > zoo;
zoo.push_back(new CDog());
zoo[0]->soundsLike();

不好吗 unique_ptr将为您处理破坏。

我认为您不能使用引用。另外,我认为您目前无法将其设为“树皮”。只有“ woof”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时填充NetLogo选择器

来自分类Dev

在运行时填充NetLogo选择器

来自分类Dev

jQuery选择器不能在运行时修改的元素上工作?

来自分类Dev

使用继承在运行时扩展Python对象

来自分类Dev

在运行时在代码后面选择资源文件

来自分类Dev

如何在运行时选择迭代器方向

来自分类Dev

在运行时更改继承类

来自分类Dev

在运行时检查协议继承

来自分类Dev

引用运行时生成的选择器

来自分类Dev

Swift-使用运行时参数的选择器定义补丁

来自分类Dev

使用Java 8在运行时选择具体的实现

来自分类Dev

如何在运行时使用Hibernate选择架构?

来自分类Dev

在运行时动态评估代码

来自分类Dev

在运行时修改功能代码

来自分类Dev

代码在运行时挂起

来自分类Dev

在运行时更改代码

来自分类Dev

选择在运行时创建的组件

来自分类Dev

除非使用计时器,否则无法在运行时选择动态创建的组合框的值

来自分类Dev

使用运行时指定的协议一致性测试和选择器的通用调度机制

来自分类Dev

运行时错误'0':使用Selenium,vba和css选择器单击按钮的SeleniumError无效参数

来自分类Dev

如何在运行时在浏览器中运行代码

来自分类Dev

Spring原型在运行时继承属性

来自分类Dev

在运行时选择模板参数时如何避免代码的指数增长

来自分类Dev

运行时一次高效的功能选择器

来自分类Dev

运行时的Java解释器代码

来自分类Dev

为什么在运行时使用此代码会收到“无效的参数”?

来自分类Dev

如何在运行时首先使用EF代码从ObjectContext获取实体类型的列表?

来自分类Dev

如何在运行时编译和使用Kotlin代码?

来自分类Dev

如何在运行时编译的C#代码中使用“ UnityEngine”?

Related 相关文章

热门标签

归档