3.关于c++一些基础知识,这些不懂,我写的c++代码都太fuck了(文章转载)

看到一些总结比较好的文章,放在此处。

c++变量作用域和声明周期

 

https://blog.csdn.net/fenxinzi557/article/details/52169134

 

https://blog.csdn.net/KingCat666/article/details/44113823

 

野指针的产生:

https://blog.csdn.net/msdnwolaile/article/details/50989643

关键点:1.不要在函数内返回局部变量的指针或者引用2.不要把指针指向局部变量。记录一次野指针的产生。最近写书上的demo的时候,碰到这个问题,半天检查不出来。我以前觉得

内存管理不善的问题好解决,可能我错了,代码量一旦大了,而且我还是写完在编译,找bug的时候就很麻烦。

//不要将指针指向局部变量。
Terms(int m_degree, float m_core)
{
degree = m_degree;
core = m_core;
next = nullptr;
}
} *pterm, term;
 
 
class Polynomial{
private:
  pterm head;

public:
Polynomial(){
  term myte = Terms(0,0);
  head = &myterm;
  /* 
  以前在写链表的时候,采用head = new Terms(0,0)昨天突发奇想说可以直接采用声明局部变量再取地址的形式,这样我就不用写析构函数了,
  呵呵达,事实证明,我自认为很正确的事玩玩错得很离谱。head指针指向节点一个结构体,当析构函数结束了,myte被销毁,head就指向了垃圾内存,head这个地址还存在,后面我们再使用head就拿不到想要的数据。当然可以向这块空间填入数据,但是系统可能会使用这块内存,给他分配其他的数据。head的生命周期是由类决定的,但是局部变量在成员函数结束后销毁,不由类决定。
 。
  */
};

 

额外看到的一个东东

https://blog.csdn.net/gatieme/article/details/17592187

 

原文链接: https://www.cnblogs.com/jielearscoding/p/12577385.html

欢迎关注

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

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    3.关于c++一些基础知识,这些不懂,我写的c++代码都太fuck了(文章转载)

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

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

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

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

(0)
上一篇 2023年3月1日 下午11:20
下一篇 2023年3月1日 下午11:21

相关推荐