C++之函数参数中带有class的情况会重复释放类资源、导致段错误发生
我的C++的一个类,要在另一个函数中使用到,原来按照一般的数据类型传递参数,比如:
#include <iostream>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
class CClass{
public:
CClass(){
std::cout<<"String CClass"<<std::endl;
}
~CClass(){
std::cout<<"Ending CClass"<<std::endl;
}
};
CClass CLS;
void func(CClass cls){
return ;
}
int main(int argc,char **argv){
func(CLS);
return 0;
}
结果居然就是:
ayanmw@ayanmw-desktop:~$ g++ classInFunction.cpp
ayanmw@ayanmw-desktop:~$ ./a.out
String CClass
Ending CClass
Ending CClass
着实 让我郁闷了一下!!!函数内部传递的一个类,居然 在这个函数内部给释放掉了。。。
如果类里面有一些 指针,end的时候有free or delete的操作,那么结果就是: 段错误
这种问题 我不知道如何处理,只能避免 在函数参数中使用类了。
------------------------------------------------------------------------------------------------
一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。