inheritance - 调用C++ virtual方法导致析构函数被调用
伊谢尔伦
伊谢尔伦 2017-04-17 11:51:19
[C++讨论组]

我的程序中定义了一个抽象类(比如叫AdvectionManagerInterface),子类AdvectionManager继承AdvectionManagerInterface。当我调用AdvectionManager的一个virtual方法density时,结果AdvectionManager的析构函数被调用,如下图所示

请问该如何理解呢?我的程序稍微有些复杂,不方便隔离出问题代码,请大家支支招!十分感谢!

编辑:density函数的内容是:

    virtual double
    density(const TimeLevelIndex<2> &timeIdx, int tracerIdx, int cellIdx) const {
        return meshAdaptor.mass(timeIdx, tracerIdx, cellIdx)/meshAdaptor.volume(cellIdx);
    }

不知道能看出什么端倪~

再编辑:output函数在main函数中调用:

#include "lasm.h"

using namespace lasm;

int main(int argc, char const *argv[])
{
    if (argc != 2) {
        REPORT_ERROR("Configure file path is needed!");
    }
    ConfigManager configManager;
    Cartesian3DTest test;
    AdvectionManager advectionManager;
    TimeLevelIndex<2> oldIdx;

    configManager.parse(argv[1]);

    test.init(configManager, advectionManager);
    test.setInitialCondition(advectionManager);
    test.output(oldIdx, advectionManager);
    return 0;
}
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号