- 博客(14)
- 收藏
- 关注
原创 C++ 类和对象 小知识点
目录文章目录一、初始化列表1.初始化列表格式:2.特性二、Static成员1.static成员概念 2.特性三、友元1.友元概念2.友元函数3.友元类四、内部类1.内部类概念2.特性以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。例如:这种格式等于:不过初始化列表格式优先度更高 还有初始化列表赋值给的是缺省值2.1 每个成员变量在初始化列表中只能出现一次(初始化只能初始化一次)2.2 类中包含以下成员,必须放在初始化列表位置进行初始化:
2025-03-14 23:15:51
838
原创 C++ operator 关键字 运算符重载 讲解
在C++编程中,运算符重载是体现语言灵活性的重要特性之一。它允许开发者赋予自定义类型与内置类型相似的操作体验,例如让两个自定义类对象直接使用进行相加,或是通过>>实现智能输入。能力越大,责任越大。在享受C++语法带来的便利时,更要严格遵守运算符的语义约定,方能写出既美观又可靠的代码,不然只会吞吐苦果,bug一堆。
2025-03-08 11:06:39
767
原创 C++ 类的6个默认成员函数(二)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数:构造函数,析构函数,拷贝构造函数,赋值运算符重载函数,两个取地址函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。
2025-03-07 20:17:35
270
原创 C++ 类的6个默认成员函数(一) 讲解
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数:构造函数,析构函数,拷贝构造函数,赋值重载,两个取地址。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。一、构造函数。
2025-03-03 23:02:00
758
原创 C++ this指针讲解
原因:这里p是空指针,传过去的this指针只是接收了p的空指针,但是在PrintA()中,会隐含一个this->_a,而this指针是一个空指针,访问this指针_a的位置,就要对this指针进行解引用,此时程序就会崩溃,因为对空指针进行了解引用。对于上述类,有这样的一个问题: Date类中有 Init 与 Print 两个成员函数,函数体中没有关于不同对象的区分,从汇编代码上看:它们的调用地址都是一样的。注意:这里我们不能显示this指针所操作的写出来,因为他是隐含的,我们不能抢了编译器的活。
2025-03-01 15:01:31
772
原创 C++ 类的概念讲解
类(Class)是C++面向对象编程的核心概念,是一种用户自定义的数据类型。用于封装数据(属性)和操作数据的方法(成员函数),体现现实世界的实体抽象。访问限定符:成员变量声明;成员函数声明;class为定义类的关键字ClassName为类的名字{}中为类的主体类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类定义结束时后面分号不能省略。int month;public:2.1.声明和定义全部放在类体中。
2025-02-28 18:03:20
1141
原创 C++ auto 关键字(C++11) 讲解
auto当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译 器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。// 该行代码会编译失败,因为c和d的初始化表达式类型不同1.auto的优势:代码简洁、泛型友好、维护性高2. 使用建议:优先使用auto、警惕隐式转换3. 谨记限制:理解auto的边界,避免在类成员、函数参数(C++20前)等场景误用。
2025-02-27 09:29:06
832
原创 C++ inline 关键字 内联函数 讲解
inline是 C++ 中用于优化函数调用性能的关键字,适合小型、频繁调用的函数。虽然它可以减少函数调用开销,但过度使用可能导致代码膨胀。现代编译器已经具备强大的优化能力,因此在实际开发中,应谨慎使用inline,优先依赖编译器的自动优化。
2025-02-26 22:52:02
675
原创 C++ 引用(&)知识点详解
作为C++核心特性之一,引用以安全的别名机制平衡了效率与风险。它既避免了指针的复杂内存操作,又突破了值传递的性能瓶颈,在函数传参、返回值优化等场景中展现独特价值。引用机制在提升代码效率和可读性方面优势明显,但也需注意其使用限制。理解引用与指针的本质差异,根据具体场景合理选择,是写出高质量C++代码的关键。
2025-02-24 22:25:03
701
原创 C++ 函数重载详解:规则、类型、歧义与浅谈底层原理
什么是函数重载?函数重载(Function Overloading)是 C++ 的核心特性之一,允许在同一作用域内定义多个同名函数,只要参数个数不同或 类型不同 或 参数类型顺序不同。通过这种方式,相同的函数名可以根据不同的参数类型或数量执行不同的逻辑,提升代码的可读性和灵活性。优势:提升代码复用性,简化接口设计。核心规则:参数列表必须不同,作用域一致。C/C++ 差异:C++ 通过名称修饰支持重载,C 语言因符号规则限制无法实现。
2025-02-23 16:17:07
485
原创 C++命名空间与缺省参数
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。1. 正常的命名空间定义// 命名空间中可以定义变量/函数/类型2. 命名空间可以嵌套test.cppint a;int b;int c;int d;3.多个命名空间合并同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。ps:一个工程中的test.h和上面test.cpp中两个N1会被合并成一个test.h。
2025-02-22 14:55:06
900
原创 C语言之循环语句
1.while循环该如何表达:当表达式为真时,循环会一直进行下去,直到表达式为假或者使用break跳出。2.while循环如何运行的呢?具体应是顺序运行:⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语 句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。
2023-10-28 11:04:47
281
1
原创 C语言之分支语句
基本if语句在C语言中通常为解决选择问题时,我们会使用分支语句进行编译代码,使代码可以正常运行并且解决问题,下面让我一一讲解分支语句的基本语句基本if语句if语句正如它字面意思一样为“如果”,它是一个条件语句,它的基本功能是判断条件是否成立,如果成立则执行if语句下面的代码,不成立则不执行。换种意思则是表达式条件为真时执行,为假时不执行。语句的条件表达式书写如图:在括号内()的代码如果为真则执行下面代码,为假则不执行。
2023-10-26 20:33:24
146
1
原创 关于我第一次在牛客网刷C++题
其次在刷题的过程中我懂了if()中最好不要超过三个选择,不然系统会报错,然后就是出现多个要求我们选择的时候我知道了可以有很多个esle if()语句,不再是简简单单的三个选择if() ,esle if(),esle,这种只能三方面选择的。那时题目说录入多个成绩报不同优,良,差,不及格,输出错误时我就楞了一下,因为我跟着老师学习时只知道三个以下的选择语句,哭笑不得,哈哈哈。首先牛客网刷题真的很好,就今天而言,我去刷C++的选择分支语句的题目,他跳出来的题往往都会让我眼前一亮,可能是我纯纯新手小白吧。
2023-09-30 16:53:49
63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人