![](https://i-blog.csdnimg.cn/direct/de3b72d2496041a890d28572f391a467.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++知识点
文章平均质量分 70
自己用的C++初阶笔记,大家一起集思广益,帮忙斧正
Lu_pinus
这个作者很懒,什么都没留下…
展开
-
String类的实现(C++)
使用for循环可以确保插入的字符串中如果包含了空字符('\0'),也能正确地复制到字符串中。而strcpy()函数会在遇到空字符时停止复制,可能会导致插入的字符串不完整。因此,为了保证插入的字符串完整地复制到目标位置,需要使用for循环逐个字符复制。其余头文件内容都为一些函数声明与一些底层函数(浅显易懂),不做赘述。这里不建议用strcpy()直接拷贝。原创 2024-08-04 10:20:17 · 312 阅读 · 0 评论 -
C++初期知识点体会小结(其五)
假设我们要实现一个swap()交换函数,考虑到参数有int,double,char各种类型,我们需要借助函数的重载来实现此功能,这种方法固然可行,但难免会出现以下问题:a. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函数b. 代码的可维护性比较低,一个出错可能所有的重载均出错由此诞生了泛型编程编写与类型无关的通用代码,是代码复用的一种手段),而模板是泛型编程的基础。原创 2024-07-27 17:42:48 · 782 阅读 · 0 评论 -
C++初期知识点体会小结(其四)
1)初始化的变量要根据声明的先后顺序进行赋值,如后声明的就不能赋值给前声明的2)引用变量,const常量必须初始化。原创 2024-07-21 21:44:32 · 653 阅读 · 0 评论 -
日期类实现(类和对象的应用)
因为相对于“-”,无论哪种方式都要调用两次拷贝(开头创建tmp一次,返回tmp又一次),并无差异;但对“-=”,其自己实现时不调用任何拷贝,但要利用“-”来实现就会再次调用“-”运算里的两次拷贝,再加上一次自身的赋值,就会降低效率。因为我们已经先实现了“+=”,而加法类的主体逻辑是类似的,因此再“+”中我们可以直接用上tmp += day。以上是第一种写法,但问题来了,为什么不先实现“+”,再由它来赋值给“+=”呢?要实现日期类,首先要清楚平年或闰年、每月有几天(尤其是二月的天数)。原创 2024-07-15 22:02:17 · 395 阅读 · 0 评论 -
C++初期知识点体会小结(其三)
运算符重载是具有特名字的函数,他的名字是由operator和后面要定义的运算符共同构成(如operator+,operator=,operator>等等)同样具有返回类型,参数等。·重载运算符函数的参数个数和该运算符作用的运算对象数量⼀样多。几元运算符就要有几个参数,二元运算符的左侧运算对象传给第⼀个参数,右侧运算对象传给第二个参数。*如果⼀个重载运算符函数是成员函数,则它的第一个运算对象默认传给隐式的this指针,因此运算 符重载作为成员函数时,参数比运算对象少⼀个。原创 2024-07-14 20:43:25 · 316 阅读 · 0 评论 -
C++初期知识点体会小结(其二)
A.无返回值B.函数名与类名相同C.可以重载D.如果类中没有显式定义构造函数,则C++编译器会自动生成⼀个无参的默认构造函数,一旦用户显式定义编译器将不再生成E.默认构造不仅仅是编译器默认生成的那个称作默认构造,总的来说,不传实参就可以调用的构造就叫默认构造。原创 2024-07-12 19:07:08 · 133 阅读 · 0 评论 -
C++初期知识点体会小结(其一)
用inline修饰的函数叫做内联函数,编译时C++编译器会在调用的地方展开内联函数,这样调用内联 函数就需要建立栈帧了,就可以提高效率。在以后的学习中,如函数、类、变量的名称都将在全局作用域中大量出现,为避免导致冲突所以就会用namespace来将这些标识符的名称本地化。const引用也可以引用普通对象,因为对象的访 问权限在引用过程中可以缩小,但是不能放大。2)性质:namespace本质是定义出一个域,这个域跟全局域各自独立,不同的域可以定义同名变量。C++中域有函数局部域,全局域,命名空间域,类域;原创 2024-07-09 21:31:23 · 352 阅读 · 0 评论