版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq78442761/article/details/82705292
比如:
要做一个接口,API,函数给别人用,
放回一堆数据给了那个指针,那么,这个new出的东西,是谁来释放!!!!!
解决方法:可以在定义一个类,接口,函数,用于释放,并使用了作用域,和类的特点,
如下代码:
#include<iostream>
#include <vector>
using namespace std;
struct Data{
int value_1;
int value_2;
int value_3;
Data(int value1,int value2,int value3){
value_1=value1;
value_2=value2;
value_3=value3;
}
};
class TestDemo{
public:
TestDemo(vector<Data*> &data){
m_data=data;
}
~TestDemo(){
cout<<"TestDemo descontruction called!"<<endl;
for(int i=0;i<(int)m_data.size();i++){
delete m_data[i];
}
}
private:
vector<Data*> m_data;
};
void createData(vector<Data*> &data){
for(int i=0;i<100;i++){
data.push_back(new Data(i,i+1,i+2));
}
}
void main(){
vector<Data*> m_data;
createData(m_data);
{
TestDemo testDemo(m_data);
}
getchar();
}
运行截图如下:
可以看到由createData这函数new出的东西,被TestDemo这个类给释放了!
这里只说明一个思路!!!!