zoukankan      html  css  js  c++  java
  • 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的操作,那么结果就是: 段错误

    这种问题 我不知道如何处理,只能避免 在函数参数中使用类了。

    转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

    ------------------------------------------------------------------------------------------------

    一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

  • 相关阅读:
    [转]Hamcrest使用方法实例
    Maven配置浅析
    Guava API
    awk排序作业
    [转]awk使用手册
    Vue源码探究-全局API
    vue 组件间传值
    在2018年如何优雅的开发一个typescript语言的npm包?
    PHP四种序列化方案
    从 0 到 1 再到 100, 搭建、编写、构建一个前端项目
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2413695.html
Copyright © 2011-2022 走看看