C++相关
文章平均质量分 88
梦悦foundation
程序员,之前在字节跳动做嵌入式,主要是在linux上用c语言开发,主营业务还是写代码,但是个人的兴趣爱好相当广泛,法律允许范围内几乎所有的领域都感兴趣,由于个人时间和精力有限,其实主要是经济实力受限,只能在经济能力范围内浅尝辄止,画重点,“浅尝辄止”!
目前涉猎的领域:IT(吃饭的家伙不能丢),CG影视后期(PS,Pr,AE,C4D),哲学,心理学!
slogan:分享和记录改变世界的每一步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P39-第15章友元、异常和其他-04RTTI,运行阶段类型识别和dynamic_cast
文章目录1. RTTI2. RTTl的用途3. RTTI的工作原理1. dynamic_cast运算符1. RTTIRTTI是运行阶段类型识别( Runtime Type Identification)的简称。这是新添加到C+中的特性之一,很多老式实现不支持。另一些实现可能包含开关RTTI的编译器设置。RTTI旨在为程序在运行阶段确定对象的类型提供一种标准方式。很多类库已经为其类对象提供了实现这种功能的方式,但由于C++内部并不支持,因此各个厂商的机制通常互不兼容。创建一种RTTI语言标准将使得未来原创 2021-03-08 18:11:08 · 336 阅读 · 0 评论 -
P38-第15章友元、异常和其他-03异常详细介绍
文章目录1. 异常2. 调用 abort()3. 返回错误码1. 异常程序有时会遇到运行阶段错误,导致程序无法正常地运行下去。例如,程序可能试图打开一个不可用的文件,请求过多的内存,或者遭遇不能容忍的值。通常,程序员都会试图预防这种意外情况。C++异常为处理这种情况提供了一种功能强大而灵活的工具。异常是相对较新的C+功能,有些老式编译器可能没有实现。另外,有些编译器默认关闭这种特性,您可能需要使用编译器选项来启用它。2. 调用 abort()对于异常这种问题,处理方式之一是, 调用abort()函原创 2021-03-05 16:35:47 · 365 阅读 · 0 评论 -
P37-第15章友元、异常和其他-02嵌套类
文章目录1. 嵌套类1. 嵌套类在C++中,可以将类声明放在另一个类中。在另ー个类中声明的类被称为嵌套类( nested class), 它通过提供新的类型类作用域来避免名称混乱。包含类的成员函数可以创建和使用被嵌套类的对象;而仅当声明位于公有部分,才能在包含类的外面使用嵌套类,而且必须使用作用域解析运算符(然而,旧版本的C++不允许嵌套类或无法完全实现这种概念)。对类进行嵌套与包含并不同。包含意味着将类对象作为另一个类的成员,而对类进行嵌套不创建类成员,而是定义了一种类型,该类型仅在包含嵌套类声明原创 2021-02-25 16:29:07 · 172 阅读 · 0 评论 -
P37-第15章友元、异常和其他-01友元和友元类
第15章友元、异常和其他本章内容包括:友元类友元类方法。嵌套类。引发异常、try块和 catch块。异常类。运行阶段类型识别(RTTI)。dynami_cast和 typeidstatic_cast、 const_cast和 reinterpret_cast本章先介绍一些C++语言最初就有的特性,然后介绍C++语言新增的一些特性。前者包括友元类、友元成员函数和嵌套类,它们是在其他类中声明的类;后者包括异常、运行阶段类型识别(RTTI)和改进后的类型转换控制。C++异常处理提供了处理原创 2021-02-25 14:50:28 · 306 阅读 · 0 评论 -
P36-第14章c++中的代码重用 总结
文章目录1. 总结1. 总结C++提供了几种重用代码的手段。第13章介绍的公有继承能够建立is-a关系,这样派生类可以重用基类的代码。私有继承和保护继承也使得能够重用基类的代码,但建立的是has-a关系。使用私有继承时, 基类的公有成员和保护成员将成为派生类的私有成员;使用保护继承时,基类的公有成员和保护成员将成为派生类的保护成员。无论使用哪种继承,基类的公有接口都将成为派生类的内部接口。这有时候被称为继承实现,但并不继承接口,因为派生类对象不能显式地使用基类的接口。因此,不能将派生对象看作是原创 2021-02-25 13:56:07 · 199 阅读 · 0 评论 -
P35-c++中的代码重用-04类模板详细介绍,涵盖类模板所有知识点
文章目录1. 类模板2. 定义类模板3. 使用模板类4. 深入探讨模板类1.不正确地使用指针栈1. 类模板继承(公有、私有或保护)和包含并不总是能够满足重用代码的需要。例如, Stack类(参见第10章)和 Queue类(参见第12章)都是容器类( container class),容器类设计用来存储其他对象或数据类型。例如,第10章的 Stack类设计用于存储 unsigned long值。可以定义专门用于存储 double 值或 string对象的 Stack类,除了保存的对象类型不同外,这两种原创 2021-02-25 13:12:23 · 467 阅读 · 0 评论 -
P34-c++中的代码重用-03多重继承详细介绍
文章目录1. 多重继承2. 有多少 Worker3. 虚基类4. 新的构造函数规则5. 哪个方法6. 混合使用虚基类和非虚基类7. 虚基类和支配8. MI小结1. 多重继承MI描述的是有多个直接基类的类。与单继承一样,公有MI表示的也是is-a关系。例如,可以从 Waiter类和 Singer类派生出 SingingWaiter类class SingingWaiter : public Waiter, public Singer {};请注意,必须使用关键字 public来限定每一个基类。这是因原创 2021-02-22 17:44:40 · 385 阅读 · 1 评论 -
P33-c++中的代码重用-02私有继承、保护继承,继承特性总结
文章目录1. 私有继承2. Student类示例(新版本)1. 初始化基类组件2. 访问基类的方法3. 访问基类对象4.访问基类的友元函数5. 使用修改后的 Student类3. 使用包含还是私有继承4. 保护继承5. 使用 using重新定义访问权限1. 私有继承C++还有另一种实現has-a关系的途径一一私有继承。使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会成为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。下面更深入地探讨接口问题。使用原创 2021-02-22 15:18:34 · 336 阅读 · 0 评论 -
P32-c++中的代码重用-01valarray类简介,初始化顺序
文章目录第14章C++中的代码重用1.包含对象成员的类2. valarray类简介3.Student类的设计4. 接口和实现5. Student类示例6. C++和约束7. 初始化被包含的对象8. 初始化顺序9. 使用被包含对象的接口10.使用新的 Student类第14章C++中的代码重用本章內容包括:has-a关系。包含对象成员的类。模板类 valarray私有和保护继承。多重继承虚基类。创建类模板。使用类模板模板的具体化。C++的一个主要目标是促进代码重用。公有继承是实现这原创 2021-02-22 11:05:45 · 392 阅读 · 0 评论 -
P31-c++类继承-13章总结
文章目录总结总结继承通过使用已有的类(基类)定义新的类(派生类),使得能够根据需要修改编程代码。公有继承建立is-a关系,这意味着派生类对象也应该是某种基类对象。作为is-a模型的一部分,派生类继承基类的数据成员和大部分方法,但不继承基类的构造函数、析构函数和赋值运算符。派生类可以直接访问基类的公有成员和保护成员,并能够通过基类的公有方法和保护方法访问基类的私有成员。可以在派生类中新增数据成员和方法,还可以将派生类用作基类,来做进一步的开发。每个派生类都必须有自己的构造函数。程序创建派生类对象时,原创 2021-02-20 16:41:30 · 155 阅读 · 0 评论 -
P31-c++类继承-08类设计回顾,涵盖很多知识点!
文章目录1. 类设计回顾2. 编译器生成的成员函数1.默认构造函数2. 复制构造函数3. 赋值运算符3. 其他的类方法1.构造函数2.析构函数3.转换1. 类设计回顾C++可用于解决各种类型的编程问题,但不能将类设计简化成带编号的例程。然而,有些常用的指导原则,下面复习并拓展前面的讨论,以介绍这些原则。2. 编译器生成的成员函数第12章介绍过,编译器会自动生成一些公有成员函数一特殊成员函数。这表明这些特殊成员函数很重要,下面回顾其中的一些1.默认构造函数默认构造函数要么没有参数,要么所有的参数都原创 2021-02-20 16:35:19 · 299 阅读 · 0 评论 -
P30-c++类继承-07继承和动态内存分配
文章目录1.继承和动态内存分配1.第一种情況:派生类不使用new2.第二种情况:派生类使用new2.使用动态内存分配和友元的继承示例1.继承和动态内存分配继承是怎样与动态内存分配(使用new和 delete)进行互动的呢?例如,如果基类使用动态内存分配并重新定义赋值和复制构造函数,这将怎样影响派生类的实现呢?这个问题的答案取决于派生类的属性如果派生类也使用动态内存分配,那么就需要学习几个新的小技巧。下面来看看这两种情况1.第一种情況:派生类不使用new假设基类使用了动态内存分配:// Base原创 2021-02-20 13:27:20 · 278 阅读 · 5 评论 -
P29-c++类继承-06抽象基类详细介绍
文章目录1. 抽象基类2.应用ABC概念3. ABC理念1. 抽象基类至此,介绍了简单继承和较复杂的多态继承。接下来更为复杂的是抽象基类( abstract base class,ABC)。我们来看一些可使用ABC的编程情况。有时候,使用is-a规则并不是看上去的那样简单。例如,假设您正在开发一个图形程序,该程序会显示圆和椭圆等。圆是椭圆的一个特殊情况一一长轴和短轴等长的椭圆。因此,所有的圆都是椭圆,可以从Ellipse类派生出 Circle类。但涉及到细节时,将发现很多问题。首先考虑 Ell原创 2021-02-20 10:45:38 · 420 阅读 · 0 评论 -
P28-c++类继承-05访问控制: protected
文章目录1. 访问控制: protected1. 访问控制: protected到目前为止,本书的类示例已经使用了关键字 public和 private来控制对类成员的访问。还存在另一个访问类别,这种类别用关键字 protected表示。关键字 protected与 private相似,在类外只能用公有类成员 来访问 protected 部分中的类成员。private和 protected之间的区別只有在基类派生的类中オ会表現出来。派生类的成员可以直接访问基类的保护成员,但不能直接访问基类的私有成原创 2021-02-20 07:57:39 · 177 阅读 · 0 评论 -
P27-c++类继承-04静态联编和动态联编
文章目录1. 静态联编和动态联编2. 指针和引用类型的兼容性3. 虚成员函数和动态联编4.为什么有两种类型的联编以及为什么默认为静态联编?5.虚函数的工作原理6.有关虚函数注意事项1.构造函数2.析构函数3.友元4.没有重新定义5.重新定义将隐藏方法1. 静态联编和动态联编程序调用函数时,将使用哪个可执行代码块呢?编译器负责回答这个问题。将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编( binding)。在C语言中,这非常简单,因为每个函数名都对应一个不同的函数。在C++中,由于函数原创 2021-02-20 07:57:25 · 293 阅读 · 0 评论 -
P26-c++类继承-03is-a继承关系,虚函数详解
文章目录13.2迷承:is-a关系派生类和基类之间的特殊关系是基于C继承的底层模型的。实际上,C+有3种继承方式:公有维承、保护继承和私有继承。公有继承是最常用的方式,它建立一种i-a关系,即派生类对象也是一个基类对象,可以对基类对象执行的任何操作,也可以对派生类对象执行。例如,假设有一个 Fruit类,可以保存水果的重量和热量。因为香蕉是一种特殊的水果,所以可以从Fru类派生出 Banana类。新类将继承原始类的所有数据成员,因此, Banana对象将包含表示香蕉重量和热量的成员。新的 Ban原创 2021-02-18 20:51:17 · 923 阅读 · 1 评论 -
P25-c++类继承-02基类和派生类关系详细梳理,以及例子演示!
文章目录1一个筒单的基类1. **Demo.cpp**2. 看看哪个效率更高?1. 第一种 ,不用初始化列表的方式2. 使用TableTennisPlayer这个类3.派生一个类1.构造函数:访问权限的考虑1. 成员初始化列表4. 使用派生类5. 派生类和基类之间的特殊关系1一个筒单的基类从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。为说明继承,首先需要一个基类Webtown俱乐部决定跟踪乒兵球会会员。作为俱乐部的首席程序员,需要设计一个简单的 TableTennisplayer类,原创 2021-02-17 19:35:34 · 934 阅读 · 0 评论 -
P21-c++成员初始化列表深度剖析介绍,详细的例子演示!
文章目录1. 成员初始化列表1. 注意事项,是不是所有的构造函数都需要这么做?2. 成员初始化列表使用的括号方式也可用于常规初始化1. 成员初始化列表如果 Classy是一个类,而mem1、mem2和mem3都是这个类的数据成员,则类构造函数可以使用如下的语法来初始化数据成员:Classy::Classy(int n, int m) : mem1(n), mem2(0), mem3(n*m + 2){ //..}上述代码将mem1初始化为n,将mem2初始化为0,将mem3初始化为 n*m+原创 2021-02-17 13:16:40 · 218 阅读 · 0 评论 -
P20-c++返回对象的说明深度剖析介绍,详细的例子演示!
文章目录1. 有关返回对象的说明1. 返回指向 const对象的引用2. 返回指向非 const对象的引用3. 返回对象4. 返回 const对象2. 一个例子 example.cpp1. 有关返回对象的说明当成员函数或独立的函数返回对象时,有几种返回方式可供选择。可以返回指向对象的引用、指向对象的 const引用或 const对象。到目前为止,介绍了前两种方式,但没有介绍最后一种方式,现在是复习这些方式的好时机1. 返回指向 const对象的引用使用 const引用的常见原因是旨在提高效率,但对原创 2021-02-17 13:15:53 · 173 阅读 · 0 评论 -
P19-c++重载赋值运算符深度剖析介绍,详细的例子演示!
文章目录1. 重载赋值运算符2.赋值运算符的功能以及何时使用它3. 实际的一个例子来探讨重载赋值运算符的各种情况1. 对象初始化的时候?2.第二种是已有的对象赋给另一个对象时4. 深入探讨一些赋值运算符的场景1. 多个对象相加2. 类型转换和赋值运算符的分析3. 赋值运算符的返回值是引用还是应该是类对象1. 重载赋值运算符C++允许类对象赋值,这是通过自动为类重载赋值运算符实现的。即有一个 Demo类, d1,d2 都是Demo 类对象的实例,c++编译器是允许d1 = d2;上面的操作不需要做实原创 2021-02-17 13:15:27 · 390 阅读 · 0 评论 -
P23-c++类和动态内存分配总结
文章目录1. 总结1. 总结本章介绍了定义和使用类的许多重要方面。其中的一些方面是非常微妙甚至很难理解的概念。如果其中的某些概念对于您来说过于复杂,也不用害怕一一这些问题对于大多数C++的初学者来说都是很难的。通常,对于诸如复制构造函数等概念,都是在由于忽略它们而遇到了麻烦后逐步理解的。本章介绍的一些内容乍看起来非常难以理解,但是随着经验越来越丰富,对其理解也将越透彻。在类构造函数中,可以使用new为数据分配内存,然后将内存地址赋给类成员。这样,类便可以处理长度不同的字符串,而不用在类设计时提前原创 2021-02-17 13:13:33 · 148 阅读 · 0 评论 -
P18-c++复制构造函数深度剖析介绍,详细的例子演示!
文章目录1.特殊成员函数2.复制构造函数3.何时调用复制构造函数1.新建一个对象并将其初始化为同类现有对象时,复制构造函数都将被调用2. 每当程序生成了对象副本时,编译器都将使用复制构造函数。4. copy_constructor.cpp演示初始化对象调用复制构造函数的情景?1.第一种 Demo d1(m1);默认的赋值构造函数有什么问题?2. 第二种 Demo d1 = m1;3. 第3种 Demo d1 = Demo(m1);4. 第4种 Demo *pDemo = new Demo(m1);5. 第5原创 2021-02-17 13:17:09 · 428 阅读 · 0 评论 -
P17-c++类和动态内存分配-01动态内存和类详细介绍,详细的例子演示!
文章目录1.动态内存和类1.复习示例和静态类成员1.动态内存和类您希望下个月的早餐、午餐和晚餐吃些什么?在第三天的晚餐喝多少盎司的牛奶?在第15天的早餐中需要在谷类食品添加多少葡萄干?如果您与大多数人一样,就会等到进餐时再做决定。C++在分配内存时采取的部分策略与此相同,让程序在运行时决定内存分配,而不是在编译时决定。这样,可根据程序的需要,而不是根据一系列严格的存储类型规则来使用内存。C++使用new和 delete运算符来动态控制内存。遗憾的是,在类中使用这些运算符将导致许多新的编程问题。原创 2021-02-16 19:04:34 · 915 阅读 · 0 评论 -
P16-c++使用类-总结
文章目录1. 总结1. 总结本章介绍了定义和使用类的许多重要方面,其中的一些内容可能较难理解,但随着实践经验的不断增加,您将逐渐掌握它们。一般来说,访问私有类成员的唯一方法是使用类方法。C++使用友元函数来避开这种限制。要让函数成为友元,需要在类声明中声明该函数,并在声明前加上关键字 friend。C++扩展了对运算符的重载,允许自定义特殊的运算符函数,这种函数描述了特定的运算符与类之间的关系运算符函数可以是类成员函数,也可以是友元函数(有一些运算符函数只能是类成员函数)。要调用运算符函数,可以直原创 2021-02-16 19:04:17 · 191 阅读 · 0 评论 -
P15-c++使用类-03类的自动转換和强制类型转换详细介绍,详细的例子演示!
文章目录1. 类的自动转换和强制类型转换1. 隐式转换的一个例子2. 转换函数1. 类的自动转换和强制类型转换下面介绍类的另一个主题类型转换。本节讨论C++如何处理用户定义类型的转换。在讨论这个问题之前,我们先来复习ー下C++是如何处理内置类型转换的。将一个标准类型变量的值赋给另一种标准类型的变量时,如果这两种类型兼容,则C++自动将这个值转换为接收变量的类型。例如,下面的语句都将导致数值类型转换:long count =8; // int value 8 converted to type原创 2021-02-16 19:03:47 · 401 阅读 · 0 评论 -
P14-c++使用类-02友元详细介绍,详细的例子演示!
文章目录1. 友元基本概念以及诞生原因2. 创建友元3. 常用的友元: 重载 `<<` 运算符1. <<的第一种重载版本2. <<的第二种重載版本1. 友元基本概念以及诞生原因通常,公有类方法提供唯一的访问途径,但是有时候这种制太严格,以致于不适合特定的编程问题。在这种情况下,C+提供了另外一种形式的访问权限: 友元友元有3种:友元函数;友元类友元成员函数过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。这篇文章主要讨论友元函数在为原创 2021-02-16 19:03:27 · 257 阅读 · 0 评论 -
P13-c++使用类-01运算符重载详细介绍,详细的例子演示!
文章目录1. 运算符重载2. 一个演示运算符重载的例子1. 运算符重载运算符重载是一种形式的C+多态。实际上,很多C++(也包括C语言)运算符已经被重载。例如,将*运算符用于地址,将得到存储在这个地址中的值,但将它用于两个数时,得到的将是它们的乘积。C++根据操作数的数目和类型来决定采用哪种操作。C++允许将运算符重载扩展到用户定义的类型,例如,允许使用+将两个对象相加。编译器将根据操作数的数目和类型决定使用哪种加法定义。重载运算符可使代码看起来更自然。例如,将两个数组相加是种常见的运算。通常原创 2021-02-16 19:02:21 · 610 阅读 · 2 评论 -
P22-c++自己设计一个队列
文章目录1. 队列模扒1. 队列类2. Queue类的实现1. 嵌套结构和类3.类方法4.是否需要其他类方法?5. Customer类6. ATM模拟1. 队列模扒进一步了解类后,可将这方面的知识用于解决编程问题。A 银行打算在 B 超市开设一个 自动柜员机(ATM)。B超市的管理者担心排队等待使用ATM的人流会干扰超市的交通,希望限制排队等待的人数。A银行希望对顾客排队等待的时间进行估测。要编写一个程序来模拟这种情况,让超市的管理者可以了解ATM可能造成的影响。对于这种问题,最自然的方法是使原创 2021-02-16 19:01:30 · 767 阅读 · 3 评论 -
P12-c++对象和类-05类作用域详细介绍,详细的例子演示!
文章目录1. 类作用域2. 作用域为类的常量3.作用域内枚举(C++11)3. 实例演示类作用域和作用域为类的常量1. 第一种方式是在类中声明一个枚举。2. 在类中定义常量的方式使用关键字 static1. 类作用域C++类引入了一种新的作用域:类作用域。在类中定义的名称(如类数据成员名和类成员函数名)的作用域都为整个类,作用域为整个类的名称只在该类中是已知的,在类外是不可知的。因此,可以在不同类中使用相同的类成员名而不会引起冲突。例如,Stock类的shares成员不同于JobRide类的shar原创 2021-02-16 19:00:55 · 318 阅读 · 0 评论 -
P11-c++对象和类-04对象数组详细介绍,详细的例子演示
文章目录1. 对象数组基础2. 一个实例演示对象数组的例子1. 没有提供默认的构造函数,能成功的创建对象数组吗?1. 提供默认的构造函数的方式2. 把原来的构造函数改成带有默认参数的方式3. 思考:如果两个构造函数都有呢?会报错吗?4. 构造函数来初始化数组元素,在这种情况下,必须为每个元素调用构造函数。1. 对象数组基础声明对象数组的方法与声明标准类型数组相同:stock mystuff[4];// creates an array of 4 Stock objects当程序创建未被显式初始化的类原创 2021-02-16 19:00:34 · 359 阅读 · 0 评论 -
P10-c++对象和类-03this指针详细介绍,详细的例子演示
文章目录1. this指针的作用1. this指针的作用假设有下面一段代码,Demo类的构造函数 的形参名和成员变量名一样,会出现什么问题?#include <iostream> /* author:梦悦foundation 公众号:梦悦foundation 可以在公众号获得源码和详细的图文笔记*/using namespace std;class Demo {private: int iDemo;public: Demo(int iDemo);原创 2021-02-16 18:59:13 · 144 阅读 · 0 评论 -
P9-c++对象和类-02构造函数和析构函数总结
文章目录1. 构造函数和析构函数总结1. 接受一个参数的构造函数的例子1. 构造函数和析构函数总结构造函数是一种特殊的类成员函数,在创建类对象时被调用。构造函数的名称和类名相同,但通过函数重载,可以创建多个同名的构造函数,条件是每个函数的特征标(参数列表)都不同。另外,构造函数没有声明类型。通常,构造函数用于初始化类对象的成员,初始化应与构造函数的参数列表匹配。例如,假设Bozo类的构造函数的原型如下:Bozo(const char * fname,const char * lname); //原创 2021-02-16 18:58:47 · 209 阅读 · 0 评论 -
P6-c++内存模型和名称空间-02存储连续性、作用域和链接性
文章目录1. c++ 有几种方案来存储数据1.自动存储持续性2. 静态存储持续性3. 线程存储持续性4. 动态存储持续性2. 作用域和链接1. 作用域2. 自动存储持续性3. 去哪获取笔记和详细的资料1 微信公众号,梦悦foundation2 公众号里点击IT资源,有链接3 后台回复 c++资料4 加up主微信,进学习交流群,大家一起带你飞!4. 获取到的笔记怎么使用1 蚂蚁笔记2 印象笔记3 html格式文件4 pdf文件1. c++ 有几种方案来存储数据1.自动存储持续性2. 静态存储持续原创 2021-01-29 16:44:22 · 223 阅读 · 0 评论 -
P5-c++内存模型和名称空间-01头文件相关
文章目录1. 头文件中常包含的内容2. 双引号和尖括号的区别3. 头文件管理4. 去哪获取笔记和详细的资料1 微信公众号,梦悦foundation2 公众号里点击IT资源,有链接3 后台回复 c++资料4 加up主微信,进学习交流群,大家一起带你飞!5. 获取到的笔记怎么使用1 蚂蚁笔记2 印象笔记3 html格式文件4 pdf文件1. 头文件中常包含的内容函数原型使用#define 或const 定义的符号常量结构声明类声明模板声明内联函数结构声明和模板声明不会创建实例,只是告诉原创 2021-01-29 15:49:16 · 118 阅读 · 0 评论 -
P4-c++函数详解-04函数重载,函数模板和函数模板重载,编译器选择使用哪个函数版本?
文章目录1. 编译器选择哪个函数版本?1.一个简单的例子描述匹配规则1. 编译器选择哪个函数版本?对于函数重载,函数模板,函数模板重载, C++需要一个良好的策略。来决定为函数调用使用哪一个函数定义。尤其是有多个参数时,这个过程称为重载解析。第一步,创建候选函数列表,其中包含与被调用函数的名称相同的函数和模板函数。第二步,使用候选参数列表创建可行函数列表。这些都是参数数目正确的函数。为此有一个隐式转换序列。其中包括实参类型与相应的形参类型完全匹配的情况。例如 使用float参数的函数调用可以将原创 2021-01-29 12:47:27 · 512 阅读 · 0 评论 -
P3-c++函数详解-03函数模板详细介绍
文章目录1. 函数模板的定义1. 函数模板的定义函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int 或者double )替换。通过将类型 作为参数 传递给模板,可使编译器生成该类型的函数。由于类型是用参数表示的,因此模板特性有时也被成为参数化类型。...原创 2021-01-27 21:01:27 · 299 阅读 · 2 评论 -
P2-c++函数详解-02函数重载详细介绍
文章目录1.函数重载的概念1.一个简单的演示例子1. 演示的源码2. unsigned int year = 6, print(year, 6);与谁匹配?3. 一些看起来彼此不同的特征标是不能共存的1.函数重载的概念在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数!函数重载的关键是函数的参数列表——也称为函数特征标。如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同,而原创 2021-01-21 18:45:04 · 295 阅读 · 2 评论 -
P1-c++函数详解-01函数的默认参数
文章目录1. 默认参数的概念2. 如何设置默认值呢?2.1 对于带参数列表的函数,必须从右向左添加默认值2.2 实参从左到顺序依次赋值给相应的形参,而不能跳过任何参数。3. 举一个简单的例子3.1 写在函数实现的时候会报错4. 书里面带的官方例子c++ primer plus 第八章 函数探幽,学习心得分享1. 默认参数的概念默认参数指的是当函数调用中省略了实参时自动使用的一个值。例如 将 void wow(int n) 设置成 n有默认值为1,则函数调用 wow() 就相当于 wow(1)2.原创 2021-01-20 19:50:01 · 299 阅读 · 0 评论 -
P8-c++对象和类-01默认构造函数详解
文章目录1. 默认构造函数1.1 一个详细的例子1. 使用默认的构造函数2. 添加了非默认构造函数,但是没有默认的构造函数3. 添加了非默认构造函数,也有默认的构造函数c++ primer plus 学习心得第10章 对象和类1. 默认构造函数默认构造函数是在未提供显示初始值时,用来创建对象的构造函数。也就是说,它是用于下面这种声明的构造函数Demo demo1; // 使用默认的构造函数这条语句管用的原因在于,如果没有提供任何构造函数,则c++将自动提供默认构造函数。默认的构造函数没有参数原创 2021-01-20 16:23:30 · 341 阅读 · 0 评论 -
P24-c++类继承-01详细的例子演示继承的好处
文章目录1. 继承的好处1.1 继承一笔财产肯定是比自己白手起家容易很多1.2 不提供源码行不行?2. 去哪获取笔记和详细的资料2. 去哪获取笔记和详细的资料2.1 微信公众号,梦悦foundation2.2 公众号里点击IT资源,有链接2.3 后台回复 c++资料2.4 加up主微信,进学习交流群,大家一起带你飞!3. 获取到的笔记怎么使用3.1 蚂蚁笔记3.2 印象笔记3.3 html格式文件3.4 pdf文件1. 继承的好处13章 类的继承c++ primer plus 学习心得分享项原创 2021-01-18 18:21:44 · 430 阅读 · 0 评论
分享