C++
SuGuolin
这个作者很懒,什么都没留下…
展开
-
C++ 中main函数执行完后还执行什么语句?
很多时候我们需要在程序退出的时候做一些诸如释放资源的操作,但是程序退出的方式很多种,例如main函数运行结束,用户通过Crl+C等操作发信号来终止程序,等等,因此需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理。方法就是用atexit()函数来注册程序正常终止时要被调用的函数。 atexit()函数的参数是一个函数指针,函数指针指向一个没有参数也没有...原创 2023-09-02 16:21:27 · 142 阅读 · 0 评论 -
QTCreator使用如何调用pthread_create函数
在QTCreator下编写C/C++应用程序的时候出现undefined reference to `pthread_create'undefined reference to `sem_post'error: undefined reference to `sem_destroy'解决办法参考http://blog.chinaunix.net/uid-26663150-id...原创 2020-02-16 15:15:13 · 2057 阅读 · 0 评论 -
linux上使用stl
linux上使用stl的list时,不要被它的size()接口给坑了。因为list.size()采用的是遍历的方式。会导致cpu高,而且浪费性能。原创 2019-02-14 15:05:23 · 862 阅读 · 0 评论 -
C语言到C++的升级
在C语言中,重复定义多个同名的全局变量是合法的(多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上)在C++ 中,不允许定义多个同名的全局变量struct 关键字的加强--C语言中的 struct 定义了一组变量的集合--C语言中的struct 定义的标识符并不是一种新的类型--C++中的struct用于定于一个全新的类型(也就是说不用typedef再声明一原创 2016-12-21 09:23:41 · 564 阅读 · 0 评论 -
C++ 的引用分析
引用的意义:引用作为变量名而存在,因此在一些场合可以代替指针引用相对于指针来说具有更好的的可读性和实用性const的引用--在C++中可以声明const引用--const Type &name =var;--const 引用让变量拥有只读属性 int a = 4;const int& b = a;int * p =原创 2016-12-03 17:21:48 · 439 阅读 · 0 评论 -
随想录——关于内存泄漏查找代码
今天发现在OpenWRT(RT5350)跑的一个应用程序(C++写的)内存溢出导致程序崩溃;同事叫我安装GDB来调试,我也不知道怎么装,也没有用过,后来叫我在虚拟机上装cppcheck来检查一下源码的编写规范,检查发现new 一个数组的时候 delete的时候没有加[];加上后发现还是会内存溢出。无奈之下我就一个线程一个线程注释来查看内存(top命令看内存使用情况);发现其中一个线程注释后就不会内原创 2016-11-30 23:42:08 · 1155 阅读 · 0 评论 -
C++ 的静态成员函数
在C++中可以定义静态成员函数——静态成员函数是类中特殊的成员函数——静态成员函数属于整个类的所有——可以通过类名直接访问公有静态成员函数——可以通过对象名访问公有静态成员函数#include class Demo{private: int i;public: int getI(); static void StaticFunc原创 2016-11-20 13:03:41 · 367 阅读 · 0 评论 -
C++中定义静态成员变量
——静态成员变量属于整个类所有(不是属于定义的对象所有)——静态成员变量的生命期不依赖于任何对象——可以通过类名直接访问公有静态成员变量——所有对象共享类的静态成员变量——可以通过对象名访问公有静态成员变量静态成员变量的特征—在定义时直接通过static关键字修饰—静态成员变量需要在类外单独分配空间—静态成员变量在程序内部位于全局数据区语法规则:原创 2016-11-20 12:04:44 · 1580 阅读 · 0 评论 -
C++ 动态内存分配
new关键字与malloc 函数的区别——new关键字是C++的一部分——malloc是由C库提供的函数——new以具体类型为单位进行内存分配——malloc以字节为单位进行内存分配——new在申请单个类型变量时可以进行初始化——malloc不具备内存初始化的特性 例: int * pi = new int(1); float *pf = new float原创 2016-12-01 21:57:47 · 402 阅读 · 0 评论 -
C++ 的智能指针
为什么需要智能指针?内存泄漏:动态申请空间,用完后忘记归还; C++语言中没有垃圾回收的机制;指针无法控制所指堆空间的生命周期我们需要什么需要一个特殊的指针,指针生命周期结束时主动释放堆空间,一片堆空间最多只能一个指针标识,杜绝指针运算和指针比较解决方案重载指针特征操作符(-> 和 * );只能通过类的成员函数重载;重载函数不能使用参数;只能定义一个重载函数原创 2016-11-29 22:37:21 · 345 阅读 · 0 评论 -
C++之函数对象
1. 函数对象可以有自己的状态。我们可以在类中定义状态变量,这样一个函数对象在多次的调用中可以共享这个状态。但是函数调用没这种优势,除非它使用全局变量来保存状态。2. 函数对象有自己特有的类型,而普通函数无类型可言。这种特性对于使用C++标准库来说是至关重要的。这样我们在使用STL中的函数时,可以传递相应的类型作为参数来实例化相应的模板,从而实现我们自己定义的规则。比如自定义容器的排序规则。原创 2016-10-18 23:46:52 · 370 阅读 · 0 评论