导航

01 2021 档案

摘要:为了确保各个文件中类的定义一致,类通常被定义在头文件中,而且类所在头文件的名字应与类的名字一样。例如,库类型 string 在名为string 的头文件中定义。 头文件通常包含那些只能被定义一次的实体,如类、const 和constexpr变量等。头文件中也经常用到其他头文件的功能。 头文件一旦改变 阅读全文

posted @ 2021-01-29 18:25 抑或 阅读(267) 评论(0) 推荐(0) 编辑

摘要:添加两个Sales_data 对象 因为Sales_data 类没有提供任何操作,所以我们必须自己编码实现输入、输出和相加的功能。假设已知Sales_data 类定义于 Sales_data.h 文件内。 因为程序较长,所以接下来将分成几部分介绍。总的来说,程序的结构如下: 和原来程序一样,先把所需 阅读全文

posted @ 2021-01-29 17:47 抑或 阅读(160) 评论(0) 推荐(0) 编辑

摘要:尽管我们还写不出完整的Sales_item 类,但是可以尝试把那些数据元素组织到一起形成一个简单点的类。初步的想法是用户能直接访问其中的数据元素,也能实现一些基本的操作。 既然我们筹划的这个数据结构不带有任何运算功能,不妨把它命名为Sales_data 以示与Sales_item 的区别。Sales 阅读全文

posted @ 2021-01-29 17:05 抑或 阅读(234) 评论(0) 推荐(0) 编辑

摘要:有时会遇到这种情况:希望从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量。c++11引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:decltype(f())sum=x;//su 阅读全文

posted @ 2021-01-29 16:16 抑或 阅读(335) 评论(0) 推荐(0) 编辑

摘要:编程时常常需要把表达式的值赋给变量,这就要求在声明变量时清楚地知道表达式的类型。然而做到这一点并非那么容易,有时候甚至根本做不到。为了解决这个问题,c++11新标准引入了auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型。和原来那些只对应一种特定类型的说明符不同,auto让编译器通过初 阅读全文

posted @ 2021-01-29 12:01 抑或 阅读(191) 评论(0) 推荐(0) 编辑

摘要:类型别名(type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚的知道使用该类型的真实目的。 有两种方法可用于定义类型名。传统方法是使用关键字typedef: 其中关键字typedef 作为声明语句中的基本数 阅读全文

posted @ 2021-01-29 09:40 抑或 阅读(228) 评论(0) 推荐(0) 编辑

摘要:常量表达式(是const expression) 是指值不会改变并且在编译过程中就能得到计算结果的表达式。显然,字面值属于常量表达式,用常量 表达式初始化的const 对象也是常量表达式。后面将会提到,c++语言中有几种情况下是要用到常量表达式的。 一个对象是不是常量表达式由它的数据类型和初始值共同 阅读全文

posted @ 2021-01-28 18:29 抑或 阅读(111) 评论(1) 推荐(0) 编辑

摘要:如前所述,指针本身是一个对象,它又可以指向另一个对象。因此,指针本身是不是常量以及指针所指的是不是一个常量就是两个相互独立的问题。用名词顶层const(top-level const)表示指针本身是个常量,而用名词底层const表示指针所指的对象是一个常量。 更一般的,顶层const 可以表示任意的 阅读全文

posted @ 2021-01-28 16:45 抑或 阅读(245) 评论(1) 推荐(0) 编辑

摘要:与引用一样,也可以令指针指向常量或非常量。类似于常量引用,指向常量的指针不能用于改变其所指对象的值。要想存放常量对象的地址,只能使用指向常量的指针: 之前提到,指针的类型必须与其所指对象的类型一致,但是有两个例外。第一种情况是允许令一个指向常量的指针指向一个非常量的对象: 和常量引用一样,指向常量的 阅读全文

posted @ 2021-01-28 09:37 抑或 阅读(55) 评论(0) 推荐(0) 编辑

摘要:可以把引用绑定到const对象上,就像绑定到其他对象一样,我们称之为对常量的引用。与普通引用不同的是,对常量的引用不能被用作修改他所绑定的对象: const int ci=1024; const int &r1=ci;//正确;引用及其对应的对象都是常量; r1=42;//错误,r1是对常量的引用 阅读全文

posted @ 2021-01-27 19:39 抑或 阅读(781) 评论(0) 推荐(0) 编辑

摘要:有时我们会定义这样一种变量,它的值不能被改变。例如用一个变量来表示缓冲区的大小,使用变量的好处是很容易对其进行调整,但为了防止程序可能改变这个值,可以用const对变量的类型加以限定: const int bufSize =512;//输入缓冲区大小 这样就把bufSize定义成了一个常量。任何试图 阅读全文

posted @ 2021-01-27 18:21 抑或 阅读(106) 评论(0) 推荐(0) 编辑

摘要:变量的定义包括一个基本数据类型和一组声明符。在同一条定义语句中,虽然基本数据类型只有一个,但是声明符的形式却可以不同。也就是说,一条定义语句可能定义不同类型的变量: int i=1024, *p=&i, &r=i;//i是一个int型的数,p是一个int型指针,r是一个int型引用 定义多个变量 经 阅读全文

posted @ 2021-01-27 16:51 抑或 阅读(149) 评论(0) 推荐(0) 编辑

摘要:指针(pointer)是指向另外一种类型的复合类型。与引用类似,指针也实现了对其他对象的间接访问。然而指针与引用相比又有很多不同点。其一,指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。其二,指针无须在定义时赋值。和其他内置类型一样,做块作用域内定义的 阅读全文

posted @ 2021-01-27 12:03 抑或 阅读(171) 评论(0) 推荐(0) 编辑

摘要:引用(reference):为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名。,一般的引用为左值引用,c++11中新增右值引用。 int ival=1024; int &refVal= ival;//refVal指 阅读全文

posted @ 2021-01-26 18:42 抑或 阅读(124) 评论(0) 推荐(0) 编辑

摘要:不论程序的什么的位置,使用到的每个名字都会指向一个特定的实体:变量、函数、类型等。然而,同一个名字如果出现在程序的不同位置,也可能指向的是不同实体。 作用域(scope):是程序的一部分,在其中名字有其特定的含义。c++语言中大多数作用域都以花括号{}分搁。同一个名字在不同的作用域中可能指向不同的实 阅读全文

posted @ 2021-01-26 17:26 抑或 阅读(140) 评论(0) 推荐(0) 编辑

摘要:c++的标识符由字母、数字和下画线组成,其中必须以字母或下画线开头。标识符的长度没有限制,但是对大小写字母敏感。 下表,c++保留了一些名字供语言本身使用,这些名字不能被用作标识符。 c++关键字 alignas continue friend register true alignof declt 阅读全文

posted @ 2021-01-26 11:35 抑或 阅读(1462) 评论(0) 推荐(0) 编辑

摘要:为了允许把程序拆分成多个逻辑部分来编写,c++语言支持分离式编译(separate compilation)机制,即将程序分割为若干个文件,每个文件可被独立编译。 为了支持分离式编译,c++语言将声明与定义区分开来。声明使得名字为程序所知,一个文件如果想使用别处定义的名字则必须包含对那个名字的声明。 阅读全文

posted @ 2021-01-26 10:45 抑或 阅读(84) 评论(0) 推荐(0) 编辑

摘要:变量提供一个具名的、可供程序操作的存储空间。c++中的每个变量都有其数据类型,数据类型决定着变量所占空间的大小和布局方式、该空间能存储的范围,以及变量能参与的运算。对c++程序员来说,“变量(variable)"和”对象(objec)“一般可互换使用。 变量定义:变量定义的基本形式是类型说明符,随后 阅读全文

posted @ 2021-01-25 16:59 抑或 阅读(991) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示