![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++随手记
没有撤退可言~
花有重开日,人无再少年
展开
-
函数指针的假指针问题;单例结构体;尾递归;优化冒泡排序;删除链表中的给定的元素时间复杂度为0(n),空间复杂度为0(1);删除链表中给定的元素;
1.函数指针的假引用问题:int test(int a, int b){ return a + b;}int main(){ int(*ptr)(int, int) = test; //这里所要说明的就是test前面加不加&,都一样 printf("%d", (*ptr)(1, 2)); //(ptr)前面加不加*也都一样,甚至(***********ptr)...原创 2019-10-11 21:36:49 · 174 阅读 · 0 评论 -
c++课件笔记:0和NULL;auto;宏的优缺点;inline 内联函数;引用和指针的不同点;this指针;结构体嵌套,与内存对齐;封装;
1. 0和NULLvoid f(int) { cout<<"f(int)"<<endl; } void f(int*) { cout<<"f(int*)"<<endl; } int main() { f(0); f(NULL); f((int*)NULL); return 0; } f(0...原创 2019-10-04 10:25:13 · 171 阅读 · 0 评论 -
c++课件笔记:构造函数;.析构函数;拷贝构造函数;运算符重载;【c++】必须在类初始化列表中初始化的几种情况;const成员的调用
大堆只能进行从小到大的排序,小堆只能进行从大到小的排序。1.构造函数:构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次。构造函数是特殊的成员函数,需要注意的是,构造函数的虽然名称叫构造,但是需要注意的是构造函数的主要任务并不是开空间创建对象,而是初始化对象。特征:函数名与类名相同。...原创 2019-10-04 14:29:32 · 130 阅读 · 0 评论 -
c++课件笔记:再谈构造函数;初始化列表;explicit关键字;static成员;C++11 的成员初始化新玩法;友元;内部类
1.再谈构造函数在前面的构造函数中我们说的是,构造函数可以进行初始化操作,但是并不是进行分配内存,因为内存在调用构造函数之前已经申请好了,但是在调用构造函数的时候,又不能准确的来说的是初始化,那是因为,初始化只能初始化一次,但是再构造函数体内可以进行多次的赋值操作。2.初始化列表每个成员变量只能在初始化列表的地方初始化一次,之前我们说过在构造函数体内部也可以进行初始化,那么有哪些成员变量必须...原创 2019-10-05 12:47:52 · 208 阅读 · 0 评论 -
c++课件笔记:malloc/calloc/realloc的区别;不使用循环判断来累加;new一系列区别;定位new表达式;内存泄漏
1.malloc/calloc/realloc的区别void malloc(int n);n表示你要申请的字节数,是按字节来申请的,一般使用sizeof(int) * n,来指定所要申请的空间,申请成功将返回指向这块空间的一个指针,失败的话将返回空指针。使用malloc申请的空间是没有初始化的,存放的是随机值,可以使用memset来初始化。void * memset ( void *...原创 2019-10-08 21:17:49 · 143 阅读 · 0 评论 -
c++课件笔记:模板;函数模板;类模板;
模板:在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供调用。比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然后产生一份专门处理double类型的代码,对于字符类型也是如此。函数模板的实例化:用不同类型的参数使用函数模板时,称为函数模板的实例化。模板参数实例化分为:隐式实例化和显式实例化。隐...原创 2019-10-09 15:22:02 · 128 阅读 · 0 评论