爱德华EXE 2019-07-16 11:57 采纳率: 33.3%
浏览 289

c++ 多态练习,我这样写有内存泄漏吗

循环执行读取配置,我用 _CrtDumpMemoryLeaks();
老说我有内存泄漏

#include <iostream>
#include <vector>

using namespace std;

class configBase
{
public:
    virtual void loadData()=0;
    virtual ~configBase(){}
};

class ConfigA:public configBase
{
public:
    virtual void loadData()
    {
        cout << "this configA" << endl;
    }
    ~ConfigA()
    {
        cout << "~A "<< endl;
    }
};

class ConfigB :public configBase
{
public:
    virtual void loadData()
    {
        cout << "this configB" << endl;
    }
    ~ConfigB()
    {
        cout << "~B" << endl;
    }
};

class ConfigC :public configBase
{
public:
    virtual void loadData()
    {
        cout << "this configC" << endl;
    }
    ~ConfigC()
    {
        cout << "~C" << endl;
    }
};

class ConfigManager
{
public:
    ConfigManager()
    {
        ConfigA* a=new ConfigA();
        ConfigB* b=new ConfigB();
        ConfigC* c=new ConfigC();
        configVec.push_back(a);
        configVec.push_back(b);
        configVec.push_back(c);
    }

    void showConfig()
    {
        for (auto con:configVec)
        {
            con->loadData();
        }
    }
    ~ConfigManager()
    {
        for (auto con : configVec)
        {
            delete con;
        }
    }
private:
    vector<configBase*> configVec;
};
int main()
{
    ConfigManager con;
    con.showConfig();
}
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-07-16 18:26
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态