hur.cn - 华软网

 热门搜索

请问类的对象指针是否需要释放的?

  作者:未知    来源:网络    更新时间:2011/8/12
1. 我有一个类,testClass,同时我声明了一个指针p,然后让他访问类的一些成员函数以及变量,我想问这个指针p是否需要释放的呢?

2. 如果类的内部我new了一些东西,例如是 char *str=new char[100], 那么在delete 指针p的时候是否同时会释放这些类的内部所new出来的资源? 
 
    testClass aa,*p;
    p=&aa;
    p->iniData(); 
    p->theLength=0;

    delete p; //有必要这样释放吗?
    p=NULL;
---华软 网友回答---
因为你的aa是局部变量,而不是new出来的,所以不需要释放。
2.不会释放类内部资源,除非你在析构函数里添加了释放str的操作
---华软网友回复---
new出来才要释放,否则不用。
---华软网友回复---
testClass aa,*p;
--------------------------
其实我访问类的内部成员即可以 aa. 或者 p->, 实际上,涉及到大量数据,我这种声明方法,使用p->访问是不是真的会快很多呢?
---华软网友回复---
1、不是new的不要释放
2、内部new的东西,不会自动释放,需要自己写delete
引用楼主 marklr 的回复:
1. 我有一个类,testClass,同时我声明了一个指针p,然后让他访问类的一些成员函数以及变量,我想问这个指针p是否需要释放的呢?

2. 如果类的内部我new了一些东西,例如是 char *str=new char[100], 那么在delete 指针p的时候是否同时会释放这些类的内部所new出来的资源? 
 
  testClass aa,*p;
  p=&aa;
  ……

---华软网友回复---
testClass aa,*p;
--------------------------
其实我访问类的内部成员即可以 aa. 或者 p->, 实际上,涉及到大量数据,我这种声明方法,使用p->访问是不是真的会快很多呢?
---华软网友回复---
引用 3 楼 marklr 的回复:
testClass aa,*p;
--------------------------
其实我访问类的内部成员即可以 aa. 或者 p->, 实际上,涉及到大量数据,我这种声明方法,使用p->访问是不是真的会快很多呢?

没看明白,不过不管怎么访问,速度上都差不多的。
---华软网友回复---
那用对象指针的唯一好处就是能够多态性?
---华软网友回复---
...指针灵活啊!可以动态分配对象。
---华软网友回复---
如果作为参数传递指针肯定快一些,对象还需要拷贝。
局部速度都一样
---华软网友回复---
而且直接定义对象是在栈上分配,空间有限
---华软网友回复---
这两种操作速度不会差很多觉得,何必刻意的使用对象指针。对象指针确实在多态,函数参数方面用的多点,刻意的使用反而有很多问题
---华软网友回复---
new和malloc的才要释放,像你这样的不需要,但是最好把p = NULL,防止‘野指针’
---华软网友回复---
明白了,谢谢      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。