码迷,mamicode.com
首页 > 其他好文 > 详细

指针new不new

时间:2016-07-11 00:54:31      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:

最近开始工作了,没想到刚入职就要用两年没用过的C++。  一直在写python的人竟然对一些基础的C++知识都忘记的一干二净,该打啊。。。。

 

1  不要使用为初始化的变量

  你永远不知道编译器会对这种未初始化的变量做什么,所以记得使用之前要进行初始化。

2 指针与引用

  指针保存的是地址,通过解指针可以得到对应的内容。 引用可以看作是解指针之后。

2 指针的new还是不new

  指针保存的是某个内存段的地址,这个内存上的内容可以通过解指针访问。常使用的创建方式有两种:new与非new。(对应C中的malloc)

  总体来讲: new过的指针仍然是指针,与非new指针的区别就是一个保留在堆上(需要手动释放delete free); 一个保留在栈上(系统释放,尤其是作为函数内部的局部变量时候,函数结束就会被释放);

       通俗的说:在创建指针的时候,如果你希望这个指针在当前所属函数结束后继续使用,那么使用new来创建。否则使用非new自动创建就行。(当然也可以new的方式创建,然后在函数结束前手动释放:))。 

 

  指针充当类成员函数时: 对于一个类来说,同样有两种方式创建:new与非new。这里讨论指针充当类成员的问题:不论是使用new还是非new创建类,它只是在内存中分配了一个内存块。这个内存块中有一个区域只用来放指针的。  在类的构造函数中,如果不对这个指针进行初始化,那么它也是未定义的。也是无法直接使用的。  假设我们在另外一个函数中采用非new的方式生成了一个指针,并把它付给类成员指针,那么等这个函数结束后,这个指针指向的区域就会被自动释放,此时类成员函数就会指向一个被释放掉的内存块。因而如果需要在函数结束后仍然使用这个指针的内容,就应当将其采用new的方式进行创建。

 

指针new不new

标签:

原文地址:http://www.cnblogs.com/Mscer/p/5658974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!