第2章C++基础
第2章 C++基础
第2讲C++的基础 教学目的与要求: 了解C++的产生和特点。 掌握C++源程序的构成和与在非面向对象方面的特征 教学内容提要: 1、C++语言的产生和特点; 2、C++源程序的构成; 3、C++在非面向对象方面的特征 教学重点:C+源程序的构成和与在非面向对象方面的特征。 教学难点:C++在非面向对象方面的特征。 教学进度:P17~P23 °教学过程:
第2讲 C++的基础 •教学目的与要求: 了解C++的产生和特点。 掌握C++源程序的构成和与在非面向对象方面的特征。 •教学内容提要: 1、C++语言的产生和特点; 2、C++源程序的构成; 3、C++在非面向对象方面的特征; •教学重点:C++源程序的构成和与在非面向对象方面的特征。 •教学难点: C++在非面向对象方面的特征。 •教学进度:P17~P23 •教学过程:
21c++的产生和特点 211C++的产生 C++是美国贝尔实验室于1980年开发出来 的一种过程性与面向对象性结合的程序设计 言。最初他把这种新的语言叫做“含类的C”, 到1983年才取名为C++
2.1 C++的产生和特点 2.1.1 C++的产生 C++是美国贝尔实验室于1980年开发出来 的一种过程性与面向对象性结合的程序设计语 言。最初他把这种新的语言叫做“含类的C”, 到1983年才取名为C++
212C++的特点 (1)C++保持与C兼容。 (2)用C++编写的程序可读性更好代码结构更为 合理可直接地在程序中映射问题空间的结构。 (3)生成代码的质量高运行效率仅比汇编语言代 码段慢10%到20%。 (4)从开发时间、费用到形成的软件的可重用性 可扩充性、可维护性和可靠性等方面有了很大的 提高,使得大中型的程序开发项目变得容易的多 (5)支持面向对象的机制,可方便地构造出模拟现 实问题的实体和操作
2.1.2 C++的特点 (1) C++保持与C兼容。 (2) 用C++编写的程序可读性更好,代码结构更为 合理,可直接地在程序中映射问题空间的结构。 (3) 生成代码的质量高,运行效率仅比汇编语言代 码段慢10%到20%。 (4) 从开发时间、费用到形成的软件的可重用性、 可扩充性、可维护性和可靠性等方面有了很大的 提高,使得大中型的程序开发项目变得容易的多。 (5) 支持面向对象的机制,可方便地构造出模拟现 实问题的实体和操作
22C+程序的结构特性 21一个简单的C+示例程序据一条预处理指令,细谨器 例21 入到程序中该指令所在之出。 表示该函数没 ludesiostream h> 有返回值。它— void main( 定义了一个 main(的函数 是程序中的开 函数名 始执行点。 cout<<"This is my first C++ program: Kn, 程序的主要部分。 来向显示 包括了该函数 器输出数据表示将“<”号后 的数据在显示器上 在C++语 的全部内容。 显示出来,这里是 句中必须 个字符串。 以 结尾 括号中的内容被称作函告诉cout在输出: 述了函数的功能实现。第办 program, 数体,它是由一系列C+ This is my firs 语句组成,这些语句描C
2.2 C++程序的结构特性 2.2.1 一个简单的C++示例程序 例2.1 #include void main() { cout<<″This is my first C++ program!\n″; } 是一条预处理指令,指示编译器 将文件iostream .h中的代码嵌 入到程序中该指令所在之出。 定义了一个main()的函数。 函数名 表示该函数没 有返回值。它 是程序中的开 始执行点。 包括了该函数 的全部内容。 括号中的内容被称作函 数体,它是由一系列C++ 语句组成,这些语句描 述了函数的功能实现。 程序的主要部分。 在C++语 句中必须 以“;” 结尾。 告诉cout在输出: This is my first C++ program!后 换行。 用来向显示 器输出数据。表示将“<<”号后 的数据在显示器上 显示出来,这里是 一个字符串
例22两数相加 //sum. cpp # include≤ iostream. h> int add(inta,intb);∥函数原型说明 int maino ∥主函数 i int x, y, sum; ∥定义三个整型变量 cout>x; ∥/从键盘输入变量x的值 cIn>>v: 从键盘输入变量y的值 sum=add(x, y); ∥调用函数add,将得到的值赋给变量sum cout" The sum is:"<<sum<<n';∥/输出两个数的和sum的值 return 0 int add(int a, int b) ∥)定义add函数函数值为整型 i int c ∥定义一个整型变量 ∥计算两个数的和 return c; ∥将c的值返回通过add带回调用处
例2.2 两数相加 // sum.cpp #include int add(int a, int b); // 函数原型说明 int main() // 主函数 { int x, y, sum; // 定义三个整型变量 cout >x; // 从键盘输入变量x的值 cin>>y; // 从键盘输入变量y的值 sum=add(x, y); // 调用函数add,将得到的值赋给变量sum cout<<The sum is:<<sum<<\n; // 输出两个数的和sum的值 return 0 } int add(int a,int b) // 定义add函数,函数值为整型 { int c; // 定义一个整型变量 c=a+b; // 计算两个数的和 return c; // 将c的值返回,通过add带回调用处 }
222C++程序的结构特性 类的声明部分 面向对象程序 类的使用部分
2.2.2 C++程序的结构特性 类的声明部分 面向对象程序 类的使用部分
例2.3典型的C++程序结构 #includeiostream. h> //类的声明部分 class A Int x, y,z //类A的数据成员声明 funQ{…} //类A的成员函数声明 //类的使用部分 int maino A a //创建一个类A的对象a a fun o //给对象a发消息,调用成员函数fun0 return 0
例2.3 典型的C++程序结构 #include // 类的声明部分 class A{ int x,y,z; //类A的数据成员声明 … fun(){ … } //类A的成员函数声明 … }; // 类的使用部分 int main() { A a; // 创建一个类A的对象a … a.fun(); // 给对象a发消息,调用成员函数fun() return 0; }
2.23C++程序的编辑、编译和运行 C源程序文件扩展名为C,而C++源程序文 件扩展名为CPP 在DOS下,C艹+程序的编辑、编译及运行方 法和过程与C语言基本一样,如 Turbo C++或 Borland c++都有带C和C++两种编辑器,当源程 序文件扩展名为C时,启动C编译器,当源程序文 件扩展名为CPP时启动C++编译器 在 Windos下,我们常用Ⅴ visualc++开发环境, 来编辑、编译和运行C++程序
2.2.3 C++程序的编辑、编译和运行 C源程序文件扩展名为.C,而C++源程序文 件扩展名为.CPP。 在DOS下,C++程序的编辑、编译及运行方 法和过程与C语言基本一样,如Turbo C++或 Borland C++都有带C和C++两种编辑器,当源程 序文件扩展名为.C时,启动C编译器,当源程序文 件扩展名为.CPP时启动C++编译器。 在Windos下,我们常用Visual C++开发环境, 来编辑、编译和运行C++程序
23C++在非面向对象方面的扩充 231注释与续行 以下两条语句是等价的: x-y+z; /* This is a comment * x-y+z //This is a comment / 7 75 7372 3 75;:kk;kκk;κkkκκκ☆ This program adds two integers that are entered by us, then writes the sum to scre #include void main( int xvzs x、y、 zare integer cout /enter x,y cout<< <endl; //writes x, y to screen FX+y; cout<< x+y rendl //writes the sum to screen
2.3 C++在非面向对象方面的扩充 2.3.1 注释与续行 以下两条语句是等价的: x=y+z; /* This is a comment */ x=y+z; //This is a comment /*********************************** This program adds two integers that are entered by us, then writes the sum to screen ***********************************/ #include void main() { int x,y,z; //x、y、z are integer cout>x>>y; //enter x,y cout<<″x=″<<x<<″y=″<<y<<endl; //writes x,y to screen z=x+y; cout<<″x+y=″<<z<<endl; //writes the sum to screen }