C++ primer 学习笔记

1、退出 for 循环后,变量 i不再可访问,循环终止后使用 是不可能的。然而,不是所有的编译器都有这一要求

2、float 型只能保证 位有效数字,而 double 型至少可以保证 10 位有效数字

3、字面值整数常量的类型默认为 int 或 long 类型,默认的浮点字面值常量为 double 类型,在数值的

后面加上 或 表示单精度,这些字面值都是 char 类型的。在字符字面值前加 就能够得到 wchar_t 

类型的宽字符字面值

4、两个相邻的仅由空格、制表符或换行符分开的字符串字面值(或宽字符串字面值),可连接成一个新字符串字面值。

5、注意反斜线符号必须是该行的尾字符——不允许有注释或空格符

6、左值(发音为 ell-value):左值可以出现在赋值语句的左边或右边。 右值(发音为 are-value):右值只能出现在赋值的右边,不能出现在赋值语句的左边。

7、C++ 支持两种初始化变量的形式:复制初始化和直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中

8、初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替

9、当初始化类类型对象时,复制初始化和直接初始化之间的差别是很微妙的

10、已初始化变量和未初始化变量可以在同一个定义中定义

11、变量的定义用于为变量分配存储空间,还可以为变量指定初始值

12、声明用于向程序表明变量的类型和名字extern 声明不是定义,也不分配存储空间。事实上,它只是说明变量定义在程序的其他地方。程序中变量可以声明多次,但只能定义一次

13、只有当声明也是定义时,声明才可以有初始化式,因为只有定义才分配存储空间。初始化式必须要有存储空间来进行初始化。如果声明有初始化式,那么它可被当作是定义,即使声明标记为 extern

14、C++程序中,每个名字都与唯一的实体(比如变量、函数和类型等)相关联,但是是可以在程序中多次使用同一个名字。作用域是程序的一段区域。一个名称可以和不同作用域中的不同实体相关联

15、大多数作用域用花括号来界定,但定义在全局作用域中的名字可以在局部作用域中使用(作用域嵌套)

16、在全局作用域声明的 const 变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问,通过指定 const 变更为 extern,就可以在整个程序中访问 const 对象。

17、引用是一种复合类型,通过在变量名前添加“&”符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用

18、因为引用只是它绑定的对象的另一名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上。当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象。初始化是指明引用指向哪个对象的唯一方法。const 引用是指向 const 对象的引用。

19、const 引用可以初始化为不同类型的对象或者初始化为右值。非 const 引用只能绑定到与该引用同类型的对象

20、用来初始化枚举成员的值必须是一个常量表达式。常量表达式是编译器在编译时就能够计算出结果的整型表达式

21、用 class 和 struct 关键字定义类的唯一差别在于默认访问级别

22、头文件一般包含类的定义、extern 变量的声明和函数的声明。来两个好处:保证所有文件使用给定实体的同一声明;当声明需要修改时,只有头文件需要更新

23、头文件不应该含有定义规则有三个例外:可以定义类、值在编译就已知道的 const 对象和 inline 函数

24、但是,C++ 中的任何变量都只能定义一次(第 2.3.5 节)。定义会分配存储空间,而所有对该变量的使用都关联到同一存储空间。因为 const 对象默认为定义它的文件的局部变量,所以把它们的定义放在头文件中是合法的

25、整型包括 boolcharwchar_tshort int 和 long

26、像其他 inline 一样,inline 成员函数的定义必须在调用该函数的每个源文件中是可见的

27、在一个给定的源文件中,一个类只能被定义一次。如果在多个文件中定义一个类,那么每个文件中的

定义必须是完全相同的。

28、可以声明一个类而不定义它。不完全类型(incomplete type)只能以有限方式使用。不能定

义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。

29、如果对类成员的引用没有限定,编译器会将这种引用处理成通过 this 指针的引用。

30、在普通的非 const 成员函数中,this 的类型是一个指向类类型的 const 指针。在 const 成员函数中,this 的类型是一个指向 const 类类型对象的 const 指针

31、const 对象只能使用 const 成员(成员函数)。非 const 对象可以使用任一成员,但非 const 版本是一个更好的匹配。

32、可变数据成员(mutable data member)永远都不能为 const,甚至当它是 const 对象的成员时也如此。

33、形参表和函数体处于类作用域中:在定义于类外部的成员函数中,形参表和成员函数体都出现在成员名之后。这些都是在类作用域中定义,所以可以不用限定而引用其他成员

34、函数返回类型不一定在类作用域中:与形参类型相比,返回类型出现在成员名字前面。如果函数在类定义体之外定义,则用于返回类型的名字在类作用域之外

35、1首先,在使用该名字的块中查找名字的声明。只考虑在该项使用之前声明的名字。 

2如果找不到该名字,则在包围的作用域中查找。

36、类定义实际上是在两个阶段中处理:1.首先,编译成员声明2.只有在所有成员出现之后,才编译它们的定义本身。

37、在名字查找期间,如果类作用域中使用的名字不能确定为类成员名,则在包含该类或成员定义的作用域中查找,以便找到该名字的声明。 类成员声明的名字查找 按以下方式确定在类成员的声明中用到的名字。 1. 检查出现在名字使用之前的类成员的声明。2. 如果第 步查找不成功,则检查包含类定义的作用域中出现的声明以及出现在类定义之前的声明。

38、必须在类中先定义类型名字,才能将它们用作数据成员的类型,或者成员函数的返回类型或形参类型。,名字必须在使用之前进行定义。而且,一旦一个名字被用作类型名,该名字就不能被重复定义。

39、按以下方式确定在成员函数的函数体中用到的名字。 

1.  首先检查成员函数局部作用域中的声明。 

2.  如果在成员函数中找不到该名字的声明,则检查对所有类成员的声明。 

3.  如果在类中找不到该名字的声明,则检查在此成员函数定义之前的作用域中出现的声明。

40、尽管类的成员被屏蔽了,但仍然可以通过用类名来限定成员名或显式使用 this 指针来使用它。

41、尽管全局对象被屏蔽了,但通过用全局作用域确定操作符来限定名字,仍然可以使用它。

42、当成员定义在类定义的外部时,名字查找的第 步不仅要考虑在 Screen 类定义之前的全局作用域中的声明,而且要考虑在成员函数定义之前出现的全局作用域声明。注意,全局函数 verify 的声明在 Screen 类定义之前是不可见的。然而,名字查找的第 步要考虑那些出现在成员定义之前的外围作用域声明,并找到全局函数 verify 的声明。

43、const 构造函数是不必要的。创建类类型的 const 对象时,运行一个普通构造函数来初始化该 const 对象。

44、从概念上讲,可以认为构造函数分两个阶段执行:(1)初始化阶段;(2)普通的计算阶段。计算阶段由构造函数函数体中的所有语句组成。 不管成员是否在构造函数初始化列表中显式初始化,类类型的数据成员总是在初始化阶段初始化。初始化发生在计算阶段开始之前。

45、在构造函数初始化列表中没有显式提及的每个成员,使用与初始化变量相同的规则来进行初始化。运行该类型的默认构造函数,来初始化类类型的数据成员。内置或复合类型的成员的初始值依赖于对象的作用域:在局部作用域中这些成员不被初始化,而在全局作用域中它们被初始化为 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值