坚持
文章平均质量分 78
smile417459620
这个作者很懒,什么都没留下…
展开
-
C++ dele this 指针
(1)析构函数内调用delete this析构函数内调用deletethis 可以理解为 函数无终止条件自我递归调用, 最终导致栈溢出。(注意:这里无论析构函数是否是虚函数)(2)除析构函数外其他函数都可以,许多老一点的库代码里都有类似releasexxx()或者是recycleself()的函数(3)使用delete this注意事原创 2018-02-02 21:11:40 · 215 阅读 · 0 评论 -
观察者模式与监听模式区别
一,类的四大基本关系: a.关联关系:如A类调用B类。 b.继承关系:如A类是B类的父类。 c.聚合关系:如装橘子的箱子,箱子是否存在与里面装没装橘子没有任何关系,也就是说橘子不会影响箱子的存在。 d.组合关系:如一个小组,小组是否存在与小组中是否有组员是息息相关的,如果没有组员,小组就不存在了。监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后原创 2018-02-02 21:08:07 · 3678 阅读 · 1 评论 -
malloc/free与new/delete的区别
一、同点: 都可用于申请动态内存和释放内存二、不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制...原创 2018-09-05 18:01:05 · 251 阅读 · 0 评论 -
C++ 引用【&】和【指针】在作为形参时的区别
一、热身准备:int n;int &m = n;在C++中,多了一个C语言没有的引用声明符&,如上,m就是n的引用,简单的说m就是n的别名,两者在内存中占同样的位置,不对m开辟新的内存空间,对m的任何操作,对n来说是一样的。二、对于引用,有以下三条规则:(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL 引用,引用必须与...原创 2018-09-05 18:06:30 · 2849 阅读 · 0 评论 -
C/C++ strcpy函数详解
一、题目: 已知strcpy函数的原型是: char * strcpy(char * strDest,const char * strSrc); 1.不调用库函数,实现strcpy函数。 2.解释为什么要返回char *。二、标准答案:char *strcpy(char *strDest, const char *strSrc){ ...原创 2018-09-05 18:53:01 · 3445 阅读 · 1 评论 -
C++ 指针函数、函数指针、回调函数
一、指针函数是一个函数,只不过和一般函数区分的原因是它返回的是一个指针。int* f ( int , int ) ; // 返回的是一个整形指针int f ( int, int);// 返回的是一个整形数上面两个区别的仅仅是返回值得不同,(注意顺便说下,返回值不同可不是重载函数,重载函数只根据形参的类型和个数,当然,只读函数const也是重载函数的判断依据)当然,指针函数在使用时,必...原创 2018-09-10 22:01:07 · 835 阅读 · 0 评论