当前位置:  开发笔记 > 编程语言 > 正文

动态多态性与动态内存分配

如何解决《动态多态性与动态内存分配》经验,为你挑选了1个好方法。

是否总是需要从堆中分配内存以促进动态多态?到目前为止我遇到的所有例子都指向相同的例子.在实时编程中通常可以避免动态内存分配.因此,使用堆栈进行动态多态性是否有任何缺点,如下面的代码所示.

class Base
{
    public:
        virtual void Display()= 0;
};

class Derived:public Base
{
    public:
        void Display()
        {
            cout << "In derived" << endl;
        }
};

int main()
{
    Base*   base;
    Derived derived1;

    base = &derived1;
    base->Foo();       
    return 0;
}

David Norman.. 7

一个更好的例子是:

void func(Base &base);

int main()
{
    Derived derived;

    func(derived);

    return 0;
}

多态的使用不必靠近堆栈上创建对象的位置.

这些天我们的很多单元测试代码大致如下:

void test()
{
    MockObject mockObj;
    RealObject objectToBeTested(mockObj);

    // Do tests
}

这很大程度上取决于多态性,但在堆栈上创建对象.



1> David Norman..:

一个更好的例子是:

void func(Base &base);

int main()
{
    Derived derived;

    func(derived);

    return 0;
}

多态的使用不必靠近堆栈上创建对象的位置.

这些天我们的很多单元测试代码大致如下:

void test()
{
    MockObject mockObj;
    RealObject objectToBeTested(mockObj);

    // Do tests
}

这很大程度上取决于多态性,但在堆栈上创建对象.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有