C++的函数特征 特征是函数参数表的描述。 利用特征信息可进行严格的类型检查。它 允许编译器检验实际参数的数目是否正确, 对应的形参和实参是否相容,函数返回的 类型与函数调用的环境是否相容。 它克服了在许多C程序的开发中,由于在 C原型中没有定义参数的类型和数量,而 造成的实参和形参之间不匹配,函数返回 类型与使用之间不匹配等许多缺陷
6 C++的函数特征 ◼ 特征是函数参数表的描述。 ◼ 利用特征信息可进行严格的类型检查。它 允许编译器检验实际参数的数目是否正确, 对应的形参和实参是否相容,函数返回的 类型与函数调用的环境是否相容。 ◼ 它克服了在许多 C 程序的开发中,由于在 C 原型中没有定义参数的类型和数量,而 造成的实参和形参之间不匹配,函数返回 类型与使用之间不匹配等许多缺陷
现用C++语句改写前面的C程序。 C++程序在“h”文件中对heo(使用了 函数特征。对于hel()的原型: ◆不要求形式参数的名字出现在特征中 参数的数目和类型,以及返回类型,都 完整地在函数说明中定义 C++允许在函数说明时,在括号内直接声明 形式参数的类型。 除了标准注释分界符(…外,C++还接 受以∥开始,直到该行末尾的注释
7 ◼ 现用 C++ 语句改写前面的 C 程序。 ◼ C++ 程序在“.h”文件中对 hello( ) 使用了 函数特征。对于 hello( ) 的原型: ◆ 不要求形式参数的名字出现在特征中 ◆ 参数的数目和类型,以及返回类型,都 完整地在函数说明中定义 ◼ C++允许在函数说明时, 在括号内直接声明 形式参数的类型。 ◼ 除了标准注释分界符 (/*...*/) 外,C++还接 受以 // 开始,直到该行末尾的注释
File: hello.h */ char hello( char =) File: hello. cpp *, # include< stdio. h>/)含函数 sprintf()的原型 # include< string. h>/包含函数 strlen(的原型 # include hello. h/包含函数 hello(的原型 char hello(char name)& char value- new char 9+ strlen(name) sprintf (value, Hello, %os. " name) return value:
8 /* File: hello.h */ char *hello(char *); /* File: hello.cpp */ # include <stdio.h> //包含函数sprintf( )的原型 # include <string.h> //包含函数strlen( )的原型 # include “hello.h” //包含函数hello( )的原型 char *hello(char *name) { char *value = new char [9 + strlen(name)]; sprintf (value, "Hello, %s.", name); return value; }
/* File: main cpp */ # include< ostream.h>∥/说明输出流对象cout # include"heoh"/包含函数 hello()的原型 main(int argc, char * argvlDi cout<< hello( world );
9 /* File: main.cpp */ # include <iostream.h> //说明输出流对象cout # include "hello.h" //包含函数hello( )的原型 main(int argc, char *argv[ ]) { cout << hello("world"); }
C++的数据声明 C++的数据声明将数据名与数据类型联系起 来。其主要形式有: ◆常数值:如25,13.4,“ value is”,它们的 内容保持不变。 ◆变量:数据类型的实例,在程序执行时可 以改变其内容。 ◆常量:数据声明时在变量名前冠以保留字 const,如 const int maX=500,可定义 个常量。其内容在声明时给定,在声明它 的程序运行时内容再赋值无效
10 C++的数据声明 ◼ C++的数据声明将数据名与数据类型联系起 来。其主要形式有: ◆ 常数值:如25, 13.4, “value is”, 它们的 内容保持不变。 ◆ 变量:数据类型的实例, 在程序执行时可 以改变其内容。 ◆ 常量:数据声明时在变量名前冠以保留字 const,如 const int MAX = 500, 可定义 一 个常量。其内容在声明时给定,在声明它 的程序运行时内容再赋值无效