第1章C的初步知识

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章C++的初步知识

上学期是以C为蓝本来讲解,这学期需要增加一些C++的内容,这是进入C/C++程序设计II学习的前期准备。

从C到C++

C语言是结构化和模块化的语言,它是面向过程的。能处理小规模的程序。但当规模较大时会显示出它的不足。为了解决这个软件危机,提出了面向对象的程序设计(object oriented programming,OOP)思想。C++保留了C语言原有的所有优点,增加了面向对象机制。所以C++也称为“带类的C”。

C++对C的“增强”,表现在以下两个方面:

1、在原来面向过程的机制基础上,对C语言的功能作了扩充。(本章将介绍充分部分)

2、增加了面向对象的机制。

在面向对象的程序设计中仍然要用到结构化程序设计的知识。下面介绍C++对C的扩充,及与C的差别所在。

最简单的C++程序

C++程序在结构上与C的差别如下:

1、标准C++规定main函数声明为int型,即此主函数带回一个整型的函数值。程序如果正

常执行,则操作系统返回数值0,否则返回数值-1。

2、系统头文件不带后缀.h,如:#include

3、使用系统库时要使用命名空间std。即使用using namespace std;,这句话的意思是使用

命名空间std。C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库,就需要用using namespace std;来声明,表示要用命名空间std中的内容。

例最简单的只有输出的程序

#include

using namespace std;

int main()

{ cout<<"This is a C++ programm.\n";

1.3 C1.3.1 C n";

当程序需要执行键盘输入时,可以使用抽取操作符">>",从cin输人流中抽取字符。例如:int a;cin>>a;。

不管把什么基本数据类型的名字或值传给流,它都能懂。例如,下面的程序是输出字符串和整数:

#include

using namespace std;

int main()

{ cout<<"This is a C++ program."<

cout<<"This is "

<<"a C++ program. "

<

cout<<"This is ";

cout<<"a C++ program. ";

cout<

cout<<2;

cout<

return 0;

}

从上面的程序可以看出,输出的写法可以在同一行串连也可以分在几行。

cin可以和cout一样的方式调整行,它自动识别变量位置和类型。

例如:int a;float b;char c;,则cin>>a>>b>>c;,也可以写成:

cin>>a;

cin>>b;

cin>>c

cin能够知道抽取的变量的类型,它将对a,b,c分别给出一个整型、浮点型和字符型数。

二、输入流与输出流中使用控制符(第七章中详细介绍,这里了解就可以了)

流的默认格式输出有时不能满足特殊要求,如:

double average=;

cout<

希望显示的是,即保留两位小数,可是却显示了,默认显示6位有效位。用控制符(manipulators)可以对I/O流的格式进行控制。控制符是在头文件中定义的对象。可以直接将控制符插入流中。常用控制符如下表所列。

表1 I/O流的常用控制符

控制符描述

Dec

Hex

Oct

setfill(c)

setprecision(n)

setw(n)

setiosflags(ios::fixed) setiosflags(ios::scientific) setiosflags(ios::left) setiosflags(ios::right) setiosflags(ios::skipws) setiosflags(ios::uppercase) setiosflags(ios::lowercase) 置基数为10

置基数为16

置基数为8

设填充字符为c

设显示小数精度为n位设域宽为n个字符

固定的浮点显示

指数表示

左对齐

右对齐

忽略前导空白

16进制数大写输出16进制数小写输出

使用控制符时,要在程序的头上加头文件。

#include

#include

using namespace std;

int main()

{ int i=100;

cout<

cout<

double d=;

cout<

cout<

return 0;

}

1.3.2 用const定义常变量

在C语言中常用#define命令来定义符号常量,实际上,只是进行字符置换,容易误解。

#include

using namespace std;

#define R 2+3

int main()

{ cout<

void func(INTx){ 1.3.51.3.6.}

void point(int a){return point(a,4);}

void point(){return point(3,4);}

可以用下面的默认参数的函数来替代:

void point(int=3,int=4);

当调用“point();”时,即调用“point(3,4);” 它是第3个声明的重载函数。

当调用“point(6);”时,即调用“point(6,4);”,它是第2个声明的重载函数。

当调用“point(7,8);”时,即调用第1个声明的重载函数

如果一组重载函数(可能带有默认参数)都允许相同实参个数的调用,将会引起调用的二义性。例如:

void func(int); //重载函数之一

void func(int,int=4); //重载函数之二,带有默认参数

void func(int=3,int=4); //重载函数之三,带有默认参数

func(7); //error: 到底调用3个重载函数中的哪个?

func(20,30) //error:到底调用后面2个重载函数的哪个?

学生练习:将P13例不用重载,改用带有默认参数的函数。

#include

using namespace std;

int max(int a,int b,int c=0)

{

return (a>b?a:b)>c?(a>b?a:b):c;

}

int main()

{

int a,b,c;

cin>>a>>b>>c;

cout<

}

1.3.7 变量的引用

引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究

相关文档
最新文档