相关疑难解决方法(0)

1730
推荐指数
11
解决办法
54万
查看次数

我是否需要显式调用基本虚拟析构函数?

当用C++覆盖一个类(使用虚拟析构函数)时,我在继承类上再次将析构函数实现为虚拟,但是我是否需要调用基本析构函数?

如果是这样,我想它就是这样......

MyChildClass::~MyChildClass() // virtual in header
{
    // Call to base destructor...
    this->MyBaseClass::~MyBaseClass();

    // Some destructing specific to MyChildClass
}
Run Code Online (Sandbox Code Playgroud)

我对吗?

c++ destructor

327
推荐指数
7
解决办法
13万
查看次数

我在这个代码中调用复制构造函数?

在回答这个问题时,我被告知我的问题在于调用下面代码中的复制构造函数.但是,我只是看不到它被调用的位置.我没有做任何事情,agents[1] = agents[0];虽然显然我不明白.这种复制发生在哪里?如何更改它,以便每次只创建新对象?

我已经

int main()
{
    Level* level;
    std::vector<Agent> agents;

    level = new Level(agents);

    for (int i = 0; i < 1; i++) // this will be more than 1 in the future.
    {
        agents.push_back(Agent(100, *level, agents, level->Pickups(), D3DXCOLOR(1.0F, 0.4f, 0.4f, 1.0f)));
    }

    delete level;

}
Run Code Online (Sandbox Code Playgroud)

c++ copy-constructor

1
推荐指数
1
解决办法
137
查看次数