C++语言学习(十四)——C++类成员函数调用分析一、C++成员函数1、C++成员函数的编译C++中的函数在编译时会根据命名空间、类、参数签名等信息进行重新命名,形成新的函数名。函数重命名的过程通过一个特殊的NameMangling(名字编码)算法来实现。NameMangling算法是一种可逆的算法,既可以通过现有函数名计算出新函数名,也可以通过新函数名逆向推导出原有函数名。NameManglin
分类:
编程语言 时间:
2018-07-22 18:07:18
阅读次数:
162
在语句#3中,p2接管string对象的所有权后,p1的所有权将被剥夺。前面说过,这是好事,可防止p1和p2的析构函数试图刪同—个对象; 但如果程序随后试图使用p1,这将是件坏事,因为p1不再指向有效的数据。 下面来看使用unique_ptr的情况: 编译器认为语句#6非法,避免了p3不再指向有效数 ...
分类:
编程语言 时间:
2018-07-22 17:41:56
阅读次数:
181
1、指针本身就是一个对象,允许对指针进行赋值和拷贝,并且在其自身的生命周期中可以先后指向不同的对象。 2、指针不需要在定义的时候赋初值,在块作用域内定义的指针,若没有初始化值,其是未定义的。 3、指针不能指向引用,因为引用不是一个对象,没有实际的地址。 4、指针的类型实际上被用于指定它所指向的对象的 ...
分类:
其他好文 时间:
2018-07-21 21:25:22
阅读次数:
190
单例模式 概念:只能创建一个对象的类 实现关键: 1、所有构造函数都必须是private的(包括带参构造,拷贝构造,赋值运算符) 2、通过static成员函数申请对象空间,并返回地址 3、定义一个静态标记,记录对象的个数,并控制 4、析构函数将标记清空,以达到重复申请对象的目的,析构函数是publi ...
分类:
编程语言 时间:
2018-07-21 14:56:21
阅读次数:
146
一、KMP 作用:用于在一个文本串S内查找一个模式串P出现的位置 如上图,可得在第10与26处包含ptr数组; 暴力做法:暴力for,碰到不一样的直接返回,从后一个开始继续for,最差能到O(n * m) KMP 做法: 主要的思路是跳,比如你一开始从上面例子里的bacbababadababacam ...
分类:
其他好文 时间:
2018-07-20 21:13:29
阅读次数:
166
题目一 在O(1)时间内删除链表节点,已知删除节点的指针。 思路 关键是已知删除节点的指针,则可以将下一个节点复制到当前节点,再将当前节点指向下下个节点。 这样相当于用到的是 当前节点、下个节点、下下个节点,因此当前节点是尾节点时,下下个节点不存在,此时需要老老实实遍历寻找。 时间复杂度 [(n-1 ...
分类:
其他好文 时间:
2018-07-20 01:09:59
阅读次数:
114
在C++中,类的对象建立分为两种: 一种是静态建立,如A a; 一种是动态建立,如A ptr=new A; 栈对象: 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。使用这种方法,直接调用类的构造函数。 ...
分类:
其他好文 时间:
2018-07-19 22:57:27
阅读次数:
203
数组的动态内存分配 通过指针存储类类型对象的地址 ...
分类:
编程语言 时间:
2018-07-17 16:31:01
阅读次数:
136
/* by Nergal */ #include #include #include #include void ex_passwd(int fd) { char z; if (read(fd, &z, 1) 0); if (n < 0) perror("read"); exit(0); defau... ...
分类:
系统相关 时间:
2018-07-16 14:15:26
阅读次数:
178
参考链接:https://blog.csdn.net/kang_tju/article/details/76515894 https://www.cnblogs.com/TenosDoIt/p/3456704.html 1.auto_ptr: 输出结果: 2.unique_ptr:独享所有权的语义 ...
分类:
其他好文 时间:
2018-07-14 14:51:30
阅读次数:
213