#include<bits/stdc++.h>
using namespace std;
class A {
public :
~A(){
cout << " A is destroyed " << endl;
}
};
class B : public A
{
public :
~B(){
cout << " B is destroyed " << endl;
}
};
int main()
{
B obj;
B * p = &obj;
delete p;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在main函数中,我只创建了一个 B类对象,它继承了A类.当我使用指针删除该对象时,析构函数被调用并打印消息然后,我无法理解为什么析构函数被调用两次?
我有三个向量。v1、v2、v3。
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end());
merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());
Run Code Online (Sandbox Code Playgroud)
现在,在对 v1 和 v2 进行排序后,我想将它们合并到 v3 中。这是我写的,但它出现了分段错误。无法弄清楚为什么。(如果有人编写解决方案,请解释为什么它有效以及为什么我的解决方案不起作用)。我从C++ 文档中获取了帮助。我有什么遗漏的吗?