C++程序基础
被考次数: 2次
被考频率: 低频率
答错率:    23%
知识难度:
考试要求: 掌握     
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式系统程序设计  > 嵌入式程序设计语言  > 嵌入式C/C++程序设计要求  > C++程序设计基础


本知识点历年真题试卷分布
>> 试题列表    
 

 
       C++程序基础包括数据类型、输入/输出处理、语句、函数以及类等。
       数据类型
       C++是强类型编程语言,在继承C语言基本数据类型(char、int、float、double、void)的基础上,C++扩展了布尔类型(bool)和宽字符类型(wchar_t)、Unicode字符类型char16_t和char32_t(使用char16_t和char32_t需要包含头文件uchar.h)。
       bool类型数据的取值为真(true)或假(false),wchar_t类型数据占用2个字节,char16_t和char32_t分别用2个字节和4个字节表示。
       C++的枚举、结构体、共用体和数组都是复合数据类型,其定义与使用要求与C语言完全兼容,同时进行了扩展,其中,结构体、共用体类型可作为类类型来定义,通过标准库类型vector为用户提供更灵活的数组。
       输入/输出
       大多数C程序使用称为stdio的标准I/O库进行输入/输出处理,该库也能够在C++中使用。但是,C++程序主要使用称为iostream的I/O流库。
       在C++中,流是输入/输出设备的另一个名字,如一个文件、屏幕和键盘等。每个I/O设备传送和接收一系列的字节,称之为流。输入操作可以看成是字节从一个设备流入内存,而输出操作可以看成是字节从内存流出到一个设备。使用C++的标准I/O流库时,必须包括以下两个头文件:
       
       iostream文件提供基本的输入/输出功能,iomanip文件提供格式化的功能。通过包含iostream流库,内存中就创建了一些用于处理输入和输出操作的对象。标准的输出流(通常是屏幕)称为cout,标准的输入流(通常是键盘)称为cin。
       引用
       引用(reference)为对象提供了另一个名字(别名),通过将声明符写成“&d”的形式来定义引用类型,其中“d”是声明的变量名。例如:
       
       在上面的定义中,num2为num1的引用,它并没有复制num1,而只是num1的别名,即num2与num1绑定(bind)在一起,它们表示相同的对象。例如,如果执行运算“num1=0.16”,则num1和num2的值均为0.16。不同于变量的定义,引用必须在定义时初始化。
       引用必须用对象进行初始化,用字面值或表达式初始化引用编译时会报错。
       
       引用提供了与指针相同的能力,但比指针更为直观,更易于理解。
       “&”和“*”符号的作用与其所在位置相关,例如:
       
       引用与指针不同,主要有:
       (1)不存在空引用。引用必须连接到一个合法的对象。
       (2)一旦引用被初始化为一个对象,就不能再引用另一个对象。指针可以指向另一个对象。
       (3)引用必须在创建时被初始化。指针可以不进行初始化。
       函数
       在C++程序中可以使用C的库函数。例如,C++继承了C语言用于日期和时间操作的结构和函数。在程序中使用日期和时间相关的函数和结构,需要引用头文件。
       有四个与时间相关的类型:clock_t、time_t、size_t和tm。类型clock_t、size_t和time_t能够把系统时间和日期表示为某种整数。
       结构类型tm把日期和时间以C结构的形式保存,tm结构的定义如下:
       
       下面是几个与系统时间有关的函数声明(time.h)。
       
          内联函数
          定义函数时,在“返回类型函数名(参数表列)”之前加上inline使之成为内联函数,即“inline返回类型函数名(参数表列)”。
          对于内联函数,编译器是将其函数体放在调用该内联函数的地方,不存在普通函数调用时栈记录的创建和释放开销。
          使用内联函数时应注意以下几个问题:
          (1)在一个文件中定义的内联函数不能在另一个文件中使用。它们通常放在头文件中共享。
          (2)内联函数应该简洁,只有几个语句,如果语句较多,不适合定义为内联函数。
          (3)内联函数体中不能有循环语句、if语句或switch语句,否则函数定义时即使有inline关键字,编译器也会把该函数作为非内联函数处理。
          (4)内联函数要在函数被调用之前声明。
          函数的重载
          C++中,当有一组函数完成相似功能时,函数名允许重复使用,编译器根据参数表中参数的个数或类型来判断调用哪一个函数,这就是函数的重载。对于重载函数,只要其参数表中参数个数或类型不同,就视为不同的函数。例如,下面的max为重载函数。
          
          上面定义了三个名称为max的函数,它们的参数和返回值类型都不同。在程序中若有对max函数的调用,编译器将根据参数形式进行匹配,如果找不到对应参数形式的函数定义,编译器给出错误信息。
          定义重载函数时,应该注意以下几个问题。
          (1)避免函数名字相同,但功能完全不同的情形。
          (2)函数的形参变量名不同不能作为函数重载的依据。
          (3)C++中不允许函数名相同、形参个数和类型也相同而返回值不同的情形,否则编译时会出现函数重复定义的错误。
          (4)调用重载的函数时,如果实参类型与形参类型不匹配,编译器会自动进行类型转换。如果转换后仍然不能匹配到重载的函数,则会产生一个编译错误。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有