一个类的构造函数的参数中如果有指针类型,当这个类的资源释放时,会不会也将这些指针参数的资源也给释放掉呢?

解决方案 »

  1.   

    这要看情况,如果为指针动态分配了内存,那么就要在类析构负责释放内存。如果在类中始终没有动态分配,就不需要。比如:
    class A
    {
    public:
    A(int count){pint = new int[count];}  //动态分配了内存
    private:
    int* pint;
    };//需要在析构函数中delete pint;class B
    {
    public:
    B(int *p){pint = p;}  //没有分配内存
    private:
    int* pint;
    }  //不需要有这个类负责释放
      

  2.   

    if (类中为指针分配了内存)
        在析构函数中释放
    else    //  例如传入的是引用
        不用管
      

  3.   

    一般你在类里new了的指针,都要自己在析够函数里用delete删除。