C/C++
C/C++语言学习过程~
ZLOSER02
学习很苦,坚持很酷。
展开
-
柔性数组的使用及注意事项
例:struct sdshdr16 *p = malloc(sizeof (struct sdshdr16) + 32);// 32 为柔性数组的大小。例: free( p );//不需要额外释放,一同释放即可.3.sizeof()返回结构体的大小不包含柔性数组的大小.2.结构体中除了柔型数组外至少还要有一个其他成员.1.柔性数组在结构体当中,并且在结构体的最后面.原创 2023-10-17 19:32:15 · 299 阅读 · 0 评论 -
strtok()函数的使用方法
`strtok()` 函数会修改原始字符串,将分隔符替换为 NULL 字符 ('\0'),因此在使用时要小心,不要在原始字符串上进行其他操作。- 如果没有更多的子字符串可供分割,`strtok()` 返回 `NULL`,因此你可以使用 `while` 循环来遍历所有子字符串。- 如果原始字符串中包含连续的分隔符(如多个逗号连在一起),`strtok()` 会将它们视为一个分隔符,并在分隔符之间返回空字符串。- 如果要使用不同的分隔符,可以多次调用 `strtok()`,每次使用一个不同的分隔符。原创 2023-09-23 08:45:19 · 497 阅读 · 0 评论 -
fcntl()函数的作用及用法
需要注意的是,fcntl() 函数的使用和参数会因操作系统和应用程序的不同而有所变化,因此在具体使用时需要参考相关文档和操作系统的特定要求。常见的 fcntl() 操作包括 F_DUPFD(文件描述符复制)、F_GETFL(获取文件状态标志)、F_SETFL(设置文件状态标志)、F_SETLK(设置文件锁定)等。它通常用于在Unix/Linux系统上进行底层文件和套接字操作,以满足不同的需求。原创 2023-10-19 16:01:51 · 265 阅读 · 0 评论 -
C语言实现对程序的计时
【代码】C语言实现对程序的计时。原创 2023-09-25 11:16:22 · 137 阅读 · 0 评论 -
setsockopt()函数的用法
setsockopt() 函数是一个用于设置套接字选项的函数,通常在网络编程中使用。它用于配置套接字的各种参数和选项,以满足特定的需求。setsockopt() 函数的作用是设置指定套接字选项的值。原创 2023-10-19 20:43:16 · 420 阅读 · 0 评论 -
C++11 weak_ptr智能指针
【代码】C++11 weak_ptr智能指针。原创 2023-04-26 19:08:38 · 77 阅读 · 0 评论 -
C++11 shared_ptr智能指针
使用陷阱:shared_ptr作为被管控对象的成员时,小心因循环引用造成资源无法释放. (weak_ptr)使用make_shared初始化对象,分配内存效率更高。原创 2023-04-26 18:16:47 · 73 阅读 · 0 评论 -
C++11 unique_ptr智能指针
【代码】C++11 unique_ptr智能指针。原创 2023-04-25 23:05:12 · 277 阅读 · 0 评论 -
C++98 auto_ptr智能指针
用法:运行结果: (1)无参 :释放当前对象结果: 结果: 使用建议:(1).尽可能不要将auto_ptr变量定义为全局变量或指针(2).除非自己知道后果,不要把auto_ptr 智能指针赋值给同类型的另外一个智能指针(3).C++11 后auto_ptr已经被"抛弃",已使用unique_ptr代替!原创 2023-04-25 17:21:52 · 737 阅读 · 0 评论 -
expilcit显示构造
【代码】expilcit显示构造。原创 2023-04-23 23:50:45 · 71 阅读 · 0 评论 -
类模板和static静态数据成员总结
原创 2023-04-18 08:51:23 · 28 阅读 · 0 评论 -
类模板的三种表达方式
根据业内不成文的规定,模板类的具体实现文件一般命名为.hpp,此时主函数文件中需要同时包含此.hpp文件,这种命名方式可读性更好.特别注意:此时不可包含模板类的头文件,需要包含模板类的.cpp函数实现文件,否则编译器报错。main函数处在A.cpp文件中。(2)友元函数的实现。(3)友元函数的调用。原创 2023-04-18 08:34:41 · 138 阅读 · 0 评论 -
C++中从一个字符串中截取另一长度的子字符串
【代码】C++中从一个字符串中截取另一长度的子字符串。原创 2023-04-17 23:58:19 · 151 阅读 · 0 评论 -
C/C++判断字符串是否为另一字符串的子字符串
【代码】C/C++判断字符串是否为另一字符串的子字符串。原创 2023-04-17 00:15:18 · 926 阅读 · 0 评论 -
类模板和继承
继承时必须在子类中实例化父类的参数。继承时必须在子类中实例化父类的参数。原创 2023-04-15 17:21:05 · 79 阅读 · 0 评论 -
函数模板和普通函数在一起的调用规则
原创 2023-04-15 15:42:03 · 32 阅读 · 0 评论 -
纯虚函数和抽象类
某些类,在现实角度和项目实现角度,都不需要实例化(不需要创建它的对象),这个类中定义的某些成员函数,只是为了提供一个形式上的借口,准备让子类来做具体化的实现,此时,这个方法就可以定义为"纯虚函数",包。Circle作为Square的子类,但在Circle类中并没有对其基类的纯虚函数进行实现,所以Circle类依旧为一个抽象类.(2)要么继续把这个纯虚函数声明声明为纯虚函数,这个子类也将成为抽象类。(3)要么对此纯虚函数不做任何处理,等效于(2)的情况(不推荐)(1)要么实现这个纯虚函数(通常)原创 2023-04-14 22:08:58 · 328 阅读 · 0 评论 -
多态--遗失的子类析构函数(重要)
结果完全符合我们的预期,但是就此可以说明我们的代码就完全正确或者说不存在致命错误?如果基类指针指向的是子类对象,那么先调用子类的虚构函数,再调用父类的析构函数.如果基类指针指向的是基类对象,那么只调用基类的析构函数;当使用delete释放基类指针时,会实现动态的析构;在基类(父类)析构函数上添加virtual关键字。子类的析构函数没有被执行。为了防止内存泄漏,最好是。,使基类析构函数为虚函数。用父类指针指向子类对象。原创 2023-04-14 21:16:33 · 304 阅读 · 0 评论 -
虚函数的修饰符:final override(仅能虚函数)
(注意:函数必须是虚函数)原创 2023-04-14 16:06:11 · 134 阅读 · 0 评论 -
多重继承的虚函数表
Father类:class Father {public: virtual void Func1() { cout << "Father::Func1" << endl; } virtual void Func2() { cout << "Father::Func2" << endl; } virtual void Func3() { cout << "Father::Func3" << endl; } void Fun原创 2023-04-14 15:42:25 · 79 阅读 · 0 评论 -
多态-虚函数表
VS的对象内存分析:/d reportSingleClassLayout+类名。原创 2023-04-14 10:29:17 · 425 阅读 · 0 评论 -
多态虚函数的简单理解
原创 2023-04-14 10:19:25 · 32 阅读 · 0 评论 -
赋值运算符重载,一定要使用引用参数
原创 2023-04-12 17:57:57 · 61 阅读 · 0 评论 -
C++中const对象只能调用const方法
所以:类的成员函数如果确定不会改变数据成员,那就最好把这个成员函数定义为const,避免不必要的错误。普通对象既可以调用普通方法,也可以调用const方法;但const对象只能调用const方法。原创 2023-04-12 17:15:49 · 125 阅读 · 0 评论 -
二维动态数组的初始化
【代码】二维动态数组的初始化。原创 2023-04-11 23:20:14 · 86 阅读 · 0 评论 -
C++文件的随机读写与特定格式输入输出
【代码】C++文件的随机读写与特定格式输入输出。原创 2023-04-07 20:19:42 · 136 阅读 · 0 评论 -
C++IO流文件读写(文本文件,二进制文件)
【代码】C++IO流文件读写(文本文件,二进制文件)原创 2023-04-07 16:05:16 · 180 阅读 · 0 评论 -
C++流 IO类库
原创 2023-04-07 10:35:50 · 236 阅读 · 0 评论 -
解决多重继承二义性的方法
使用“子对象.父类名::方法()”进行指定,指定调用从哪个基类继承的方法。原创 2023-04-06 15:36:52 · 486 阅读 · 0 评论 -
C++中子类和父类构造函数和析构函数的调用顺序
原创 2023-04-05 16:36:12 · 104 阅读 · 0 评论 -
C++中类的成员访问权限与继承方式区别:
和private非常相似。唯一的区别:protected子类的成员函数可以直接访问;private子类的成员函数不可以访问。外部可以直接访问,可以通过对象来访问这个成员。外部不可以访问,自己成员函数内可以访问。原创 2023-04-05 11:59:20 · 43 阅读 · 0 评论 -
C++中string类对象占多少个字节?
string的实现在各库中可能有所不同,但是在同一库中相同一点是,无论你的string 里放多长的字符串,它的sizeof()都是固定的,字符串所占的空间是从堆中动态分配 的,与sizeof()无关。sizeof(string)=4可能是最典型的实现之一,不过也有sizeof() 为12、32字节的库实现。不管string的内容多少,或者不赋值,大小都是28个字节。但是G++编译是4个字节。原创 2023-04-05 11:24:21 · 1803 阅读 · 0 评论 -
C++拷贝构造函数
如果类中没有自定义拷贝构造函数,那么在对象拷贝时将会自动生成合成拷贝函数(又称“浅拷贝”“位拷贝”)(合成拷贝函数非常危险,比如拷贝的成员是指针,会导致新对象的该成员地址指向被拷贝对象成员的地址,如果该成员发生改动,则原对象和新对象的该成员值都将发生改变)原创 2023-04-01 20:53:11 · 27 阅读 · 0 评论 -
什么时候调用拷贝构造函数?
1.调用函数时,实参是对象,形参不是引用类型。如果函数的形参是引用类型,就不会调用拷贝构造函数。2.函数的返回类型是类,而且不是引用类型。3.对象数组的初始化列表中,使用对象。原创 2023-04-01 19:56:47 · 26 阅读 · 0 评论 -
类型定义的使用和注意事项
1.什么是类型定义:typedef 是一个高级数据特性,它可以为某一类型自定义名称,即类型的别名.(2).提高程序的可移植性.原创 2023-04-01 08:37:31 · 79 阅读 · 0 评论 -
枚举的使用和注意事项
枚举元素的值取决于定义时各枚举元素排列的先后顺序.默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1.原创 2023-03-31 20:21:18 · 111 阅读 · 0 评论 -
宏定义和带参数的宏
什么是宏:宏是一种预处理器命令,在预编译阶段将宏名替换为后面的替换体.1.提高代码的可读性和可维护性.2.避免函数调用,提高程序效率.原创 2023-03-31 17:30:02 · 70 阅读 · 0 评论 -
字符0 在ASCII码中的值为48.
字符0 在ASCII码中的值为48.原创 2023-03-31 08:49:00 · 206 阅读 · 0 评论 -
C和C++动态内存分配及内存注意事项(重要)
【代码】C和C++动态内存分配。原创 2023-03-30 18:27:52 · 30 阅读 · 0 评论 -
C++内存拷贝函数
需要包含头文件:#include<string.h>功能:从源src所指的内存地址的起始位置开始拷贝n个。到目标dest所指的内存地址的起始位置中.原创 2023-03-30 17:49:08 · 64 阅读 · 0 评论