指针new不new

最近开始工作了,没想到刚入职就要用两年没用过的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的方式进行创建。

 

原文链接: https://www.cnblogs.com/Mscer/p/5658974.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    指针new不new

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/236790

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午5:10
下一篇 2023年2月13日 下午5:10

相关推荐