
C++
文章平均质量分 95
欢迎来到我的C++专栏!在这里,我将与大家分享学习C++编程的经验、技巧和心得。不论你是刚接触编程的新手,还是希望深入了解C++的开发者,这里都会为你提供实用的学习资源和深入浅出的讲解。希望通过这个专栏,能帮助你更好地掌握C++的核心概念与高级应用,提升编程能力,成为更加优秀的开发者!
小米里的大麦
但行好事,莫问前程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C/C++】区分0、NULL和nullptr
虽然他们三者区别并不大,但是,在一些特殊情况还是需要进行区分使用的。0:C/C++98中,既可表示整数值,也可表示空指针,但可能产生混淆。NULL:通过宏定义来表示空指针,虽然提高了可读性,但依然可能与整型0混淆。nullptr:C++11引入,明确表示空指针,解决了0和NULL的问题,推荐使用。在现代C++中,优先使用nullptr来表示空指针,确保代码更安全和清晰。原创 2025-01-31 16:59:59 · 1123 阅读 · 0 评论 -
【C++】类与对象(下)
匿名对象是没有名字的临时对象。当函数返回一个对象时,C++会创建一个匿名对象来接收返回值。用作表达式的操作数时,编译器会创建一个临时对象。在类型转换过程中,C++会临时创建匿名对象。特性匿名对象有名对象命名没有名称,仅为临时对象有名称,可以通过变量名访问生命周期短暂,仅在表达式或函数调用期间存在生命周期由作用域决定,作用域结束时销毁访问方式不能直接访问,通常仅在当前表达式中使用可以通过名称多次访问内存管理编译器自动管理内存,通常是栈上分配可以是栈上或堆上,需要显式管理堆对象的内存应用场景。原创 2025-01-31 16:54:34 · 1179 阅读 · 0 评论 -
【C++】类与对象(中)
内置类型(如intchar默认构造函数不会初始化内置类型成员,成员变量可能是随机值。int x;// 默认值是随机的解决方法:使用 C++11 提供的默认值:int x = 0;// 默认值为 0自定义类型(如classstruct编译器生成的默认构造函数会调用这些类型成员的默认构造函数。public:Inner()cout << "Inner 构造函数" << endl;Inner obj;// 自定义类型成员int main()Outer obj;// 实例化自定义类型成员。原创 2025-01-31 16:48:02 · 1291 阅读 · 0 评论 -
【C++】类与对象(上篇)
类的定义class是定义类的关键字。类是对象的蓝图,包含成员变量(属性)和成员函数(方法)。类定义语法// 成员变量// 成员函数class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。两种定义方式在类体中定义成员函数:这样的函数可能被编译器视为inline内联函数。类声明与定义分离:通常将类的声明放在.h文件中,成员函数的定义放在.cpp文件中。原创 2024-09-23 10:01:00 · 1505 阅读 · 50 评论 -
【C++】class详解(与struct对比讲解)
在C++中,class都struct可以用于定义自定义的数据类型,并且它们在很多方面都是相似的。然而,它们之间的主要区别体现在默认的访问权限以及编程习惯上。接下来我将详细讲解这两者的区别、实现以及常见的易错点,辅以多个代码示例。// struct 示例int a;// 默认 publicvoid show() { // 默认 public// class 示例int a;// 默认 privatepublic:void setA(int val) { // public 明确指定。原创 2024-09-23 09:57:31 · 1476 阅读 · 10 评论 -
【C++】内联函数(inline function)详解
内联函数是一种建议编译器在调用函数时,不使用普通的函数调用机制(如压栈、跳转等),而是将函数体直接嵌入到调用点。它的优点是可以减少函数调用的开销,特别是对于频繁调用的小函数。以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,以提升程序运行的效率。语法inline内联函数适合短小且频繁调用的函数,避免了宏定义的副作用,具有类型检查和调试功能。编译器有最终决策权,不一定会根据inline关键字做内联优化,特别是在函数较大或较复杂时。原创 2024-09-21 17:08:26 · 1001 阅读 · 9 评论 -
【C++】关键字auto详解
C++中的auto关键字用于自动推导变量的类型,它大大简化了代码书写,尤其是在变量类型复杂或冗长时。以下是关于auto关键字的详细讲解,包括其使用细则、不能推导的场景、以及基于循环中的应用范围。在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,可以思考下为什么?C++11中,标准委员会赋予了autoauto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。原创 2024-09-21 17:07:52 · 8301 阅读 · 3 评论 -
【C++】深入理解引用:从基础到进阶详解
C++中的引用(reference)是一个非常重要的概念,它可以让你创建一个变量的别名,直接操作原始变量而不需要复制。引用在函数参数传递、返回值和效率优化等方面有广泛的应用。下面我们会一步步讲解引用的各个知识点,并搭配上由易到难的代码示例来帮助深入理解。引用的主要作用是在函数传参和返回值中减少不必要的复制操作,提高程序的运行效率。const引用是非常灵活和常用的,能够接收多种类型的对象,包括字面量和临时对象,广泛用于保证数据不被修改。注意生命周期和局部变量引用问题,避免程序指向无效内存。权限控制。原创 2024-09-17 16:12:34 · 1572 阅读 · 27 评论 -
【C/C++】程序的构建(编译)过程概述
每个语言和环境都有其特定的构建和执行流程,但大多数都会涉及某种形式的处理,将源代码转换成机器可以直接理解的形式。在编译和构建一个 C/C++ 程序的过程中,通常会经过预处理编译汇编和链接这四个阶段,这个过程被称为构建流程或者编译流程。每个阶段都负责将代码从一个形式转换为下一个形式,最终生成可执行文件。下面我会以一个简单的C/C++程序详细讲解每个阶段的具体过程。注意:编译器的工作其实非常复杂,远远不是博主我这轻描淡写的两句话就能描述清楚的!想要深入了解,还需不断钻研!!!原创 2024-09-17 12:29:18 · 2013 阅读 · 12 评论 -
【C++】函数重载
自然语言中,一个词可以有多重含义,人们可以通过上下文来判断该词真实的含义,即该词被重载了。比如:以前有一个笑话,国有两个体育项目大家根本不用看,也不用担心。一个是乒乓球,一个是男足。前者是谁也赢不了!,后者是谁也赢不了!在C++中,允许在同一作用域中声明几个功能类似的同名函数函数重载(Function Overloading)是指在同一个域中,可以定义多个函数名相同但参数列表不同的函数。是函数的一种特殊情况,编译器通过参数的类型、顺序和数量来区分不同的重载函数,而不仅仅是通过函数名。原创 2024-09-17 12:28:08 · 850 阅读 · 2 评论 -
【C++】缺省(默认)参数
参数参数(默认参数)是C++中的一个强大功能,允许简化我们的函数调用,减少重复代码。当参数的默认值满足大多数情况下的需求时,它可以大幅提升代码的吸引力,全缺省和半缺省的区别在于函数调用的灵活性与复杂性,全缺省更为简单,而半缺省提供了更多的可控性。与typedef比较中,参数注重于函数接口的设计,而typedef着眼于简化类型声明。两者都有适用的场景,但都致力于提升代码的简洁性和可维护性。合理地运用这两者,可以帮助开发者编写更高效且简洁的代码。原创 2024-09-16 12:03:03 · 1165 阅读 · 14 评论 -
【C++】深入理解作用域和命名空间:从基础到进阶详解
从C语言到现在的C++非常不容易,但是C++这块硬骨头还是要啃呐,C++也算是一门新语言,不过是和C语言有着一些渊源罢了,同样的,学习一门语言还是从最基础的开始,本文我们将详细介绍域(作用域)和命名空间的知识,接下来,车速太快,不要掉队哦!类域:类中的成员变量和函数作用范围。命名空间域:命名空间中的变量和函数作用范围。局部域:函数或代码块内部变量的作用范围。全局域:全局变量的作用范围,整个程序中有效。::域作用限定符:用于区分全局域和局部域中的同名变量。定义命名空间,需要使用到。原创 2024-09-16 12:01:58 · 1847 阅读 · 9 评论 -
【C++】认识C++(前言)
什么是C++C++发展史C++的重要性如何学习C++本贾尼C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机,20世纪80年代, 计算机界提出了OOP(object:面向对象思想,支持面向对象的程序设计语言应运而生。1982年,博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++原创 2024-09-13 19:39:20 · 2236 阅读 · 25 评论