类是一种用户自定义的数据类型,定义一个类,就是描述类名及其成员。“类名”是一个标识符,用于唯一标识一个类。分析以下声明MyClass类的组成。该类的描述如图2.1所示,其中大圆圈中列出的函数名均为公有函数名,小圆圈中列出的是所有数据成员。图2.1MyClass类描述注意:因为类是一种数据类型,在声明一个类时系统并不会为其分配内存空间,所以在定义类中的数据成员时,不能对其进行初始化。......
2023-11-07
顾名思义,变量就是值可变的量。一个变量有三个要素:
◇变量由一个变量名唯一标识,也就是说,每个变量有一个变量名;
◇变量可以保存某个数据值,而数据值有相应的数据类型,所以每个变量又具有一个特定的数据类型。数据类型标志着这个变量将来的用法以及它将保存哪种类型的数据值。
◇变量存储在内存中,有对应的地址,也就是说,每个变量有一个地址,可以进行取地址等操作,而其他表达式如x+y不能进行取地址操作。
1.命名变量名
变量名要遵守以下规则:
◇不能是C++保留字。C++的保留字如表1.3所示。
◇第一个字符必须是字母或下划线,中间不能有空格。
◇变量名中除了使用26个英文大小写字母和数字外,只能使用下划线。
◇一般不要超过31个字符。
◇变量名不要与C++中的库函数名、类名和对象名相同。
表1.3 C++的标准保留字(www.chuimin.cn)
例如,以下都是有效的变量名:
M3,count,_fnum,str_1
2.变量定义和声明
C++中,变量使用之前一定要定义或声明,变量定义的格式一般为:
其中,类型指出变量所存放的数据的类型;变量名是任意合法的变量名;注释指明该变量的含义和用途;修饰符进一步描述了变量的使用方式。修饰符和注释是任选的,可以没有。
首先,必须知道“声明”和“定义”之间的区别,两者的语法格式类似。“声明”是向计算机介绍名字,它说“这个名字是什么意思”。而“定义”则为这个名字分配存储空间。无论涉及变量时还是函数时含义都一样。无论在哪种情况下,编译器都在“定义”处分配存储空间。对于变量,编译器确定这个变量占多少存储单元,并在内存中产生存放它们的空间。对于函数,编译器产生代码,并为之分配存储空间。
变量的“声明”和“定义”较难区分。通常情况下,在一个“编译单元”即一个源程序文件中,变量的“声明”和“定义”是等同的,即均为变量定义。而在不同的“编译单元”中,这两者有区别,如果在甲“编译单元”中定义了一个变量A,希望在乙“编译单元”中使用它的值,就需要先“声明”该变量,然后才能使用它的值。
多个同一类型的变量可以在一行中定义,中间用逗号隔开,例如定义3个浮点型变量:
3.变量初始化
在定义变量时可以给变量赋一个初值,初值可以是一个表达式,但该表达式必须在编译时就能计算出值来。系统自动计算得到一个值后,赋给该变量。下面是一些变量初始化的例子:
简单数据类型的变量初始化比较简单,但复杂数据类型如数组、指针、类对象等的初始化各有其特点,这将在介绍相应类型时分别说明。
有关C++程序设计基础教程的文章
类是一种用户自定义的数据类型,定义一个类,就是描述类名及其成员。“类名”是一个标识符,用于唯一标识一个类。分析以下声明MyClass类的组成。该类的描述如图2.1所示,其中大圆圈中列出的函数名均为公有函数名,小圆圈中列出的是所有数据成员。图2.1MyClass类描述注意:因为类是一种数据类型,在声明一个类时系统并不会为其分配内存空间,所以在定义类中的数据成员时,不能对其进行初始化。......
2023-11-07
因此,局部变量只能在定义它的函数体或块内部使用,而不能在其他函数或块内使用这个变量。在不同的函数中可声明具有相同变量名的局部变量,系统会自动进行识别。这种全局变量称为“外部变量”。例如:上述程序的输出结果为8,因为main函数中的局部变量a屏蔽了全局变量a。static局部变量在整个程序结束才会释放其存储空间。......
2023-11-07
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2023-11-07
图5.3指针变量指针变量本身也是变量,所以指针变量在使用之前也需要定义。为指针变量赋值的方法有两种:一种是定义后,使用赋值语句的方式;另外一种是定义的同时进行初始化方式。......
2023-11-20
C++的基本数据类型有bool(布尔型)、char(字符型)、int(整型)、float(浮点型)、double。另外,C++中增加了一个布尔类型bool,其值为true(真)或false(假)。浮点数和整数不同的地方是浮点数有小数部分,如12.34。C++提供的5种基本数据类型,其数据的长度和范围会随处理器的类型和编译器类型的不同而异。C++的修饰符有short、long和signed、unsigned。表1.1大多数32位系统内置数据类型范围续表......
2023-11-07
声明函数模板的一般格式如下:template<模板参数表>函数返回值类型函数模板名(形参表)函数模板定义由关键字template开头,表示声明一个模板。模板参数表写在尖括号<>中,参数一般由关键字class或typename后加一个标识符构成。Class和typename的意义相同,表示后面的标识符是一个参数类型,代表一个潜在的标准类型或用户定义的类型。例如,定义max函数模板求两个数中的较大者。如下面的声明是错误的:可以看出,用函数模板比函数重载更方便,程序更简洁。......
2023-11-07
throw、try和catch语句的一般语法如下:throw表达式;异常处理的执行过程如下:程序通过正常的顺序执行到达try语句块,然后执行try块内受保护的语句。对于fun语句,其捕获异常的过程是相似的。只要找到一个匹配的异常类型,后面的异常处理都将被忽略。......
2023-11-07
联合体(共用体)类型定义的一般形式为:联合体类型的定义确定了参与共用存储区域的成员项以及成员项具有的数据类型。定义联合体变量的形式与定义结构体变量完全相似,只是把关键字struct换成union。union联合体名{成员列表;};union联合体名变量列表;·定义联合体类型的同时定义联合体类型变量。例如:有如下语句序列:union test key;key.a=100;key.b=40000.123;那么,联合体变量key中只有一个值,那就是key.b的值。联合体变量作为函数参数。......
2023-11-20
相关推荐