《第1章C++的初步知识》由会员分享,可在线阅读,更多相关《第1章C++的初步知识(14页珍藏版)》请在金锄头文库上搜索。
1、C+面向对象程序设计C+的初步知识【从C到C+】 C+是由C发展而来,与C兼容,C+是C的超集。 C+对C的“增强”,表现在两个方面: (1)在原来面向过程的机制基础上,对C语言的功能作了不少扩充。 (2)增加了面向对象机制。【最简单的C+程序】 例1.1输出一行字符:“This is a C+ program.” #include using namespace std; int main() cout “This is a C+ program.n”; return 0; 制作 张超英C+面向对象程序设计C+的初步知识 例1.2 求a和b两个数之和。 #include using name
2、space std; int main() int a, b, sum; cin a b; sum=a+b; cout“a+b=”sumendl; return 0; 例1.4 包含类的C+程序 #include using namespace std; class Student private: int num,score; public: void setdata() cin num; cin score; 制作 张超英C+面向对象程序设计C+的初步知识 void display() cout “num=” num endl; cout “score=” score endl; ; St
3、udent stud1, stud2; int main() stud1.setdata(); stud2.setdata(); stud1.display(); stud2.display(); return 0; 一个类是由一批数据以及对其操作的函数组成。制作 张超英C+面向对象程序设计C+的初步知识【C+对C的扩充】 C+的输入输出 C+除了可以利用printf和scanf函数进行输入和输出外,还增加了输入输出流cout和cin。 (1)用cout进行输出 cout必须和输出运算符”一起使用。制作 张起英C+面向对象程序设计C+的初步知识【用const定义常变量】 C+提供了用const
4、定义常变量的方法: const float PI=3.14159; 常变量PI具有变量的属性,有数据类型,占用存储单元,有地址,可以用指针指向它,程序运行期间此变量的值不能改变。【函数原型声明】 C+中,如果函数调用的位置在函数定义之前,则要求在函数调用之前必须作函数原型声明。 函数类型 函数名(参数表); 如:int max(int x, int y); int max(int, int);制作 张超英C+面向对象程序设计C+的初步知识【函数的重载】制作 龙鹏飞 重载的含义: 如:允许一运算符用于不同的场合,有不同的含义,这叫运算符的“重载”。 C+允许在同一作用域中用同一个函数名定义多个函
5、数,这些函数的以数个数和参数类型不同,这些同名的函数用来实现不同的功能,这就是函数“重载”。 例1.6 求3个数中最大数(分别考虑整数、实数、长整数的情况) #include using namespace std; int max(int a, int b, int c) if (ba) a=b; if (ca) a=c; return a; C+面向对象程序设计C+的初步知识 float max(float a, float b, float c) if (ba) a=b; if (ca) a=c; return a; long max(long a, long b, long c) if
6、 (ba) a=b; if (ca) a=c; return a; int main () int a,b,c; float d,e,f; long g,h,i; cin a b c; cin d e f; cin g h i; int m; m=max(a, b, c); float n; n=max(d, e, f); long int p; p=max(g, h, i); return 0; 【函数模板】 C+提供了函数模板,即建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。制作 张超英C+面向对象程序设计C+的初步知识 例1.8 将例1.6中的程序改为通过函数
7、模板来实现。 #include using namespace std; template ; T max(T a, T b, T c) if (ba) a=b; if (ca) a=c; return a; int main() int i1=8, i2=5, i3=6, i; double d1=56.9, d2=90.765, d3=43.1, d; long g1=67843, g2=-456, g3=78123, g; i=max(i1, i2, i3); d=max(d1, d2, d3); g=max(g1, g2, g3); cout“i_max=” i endl; cout“
8、f_max=” f endl; cout“g_max=” g endl; return 0; 函数模板定义的一般形式: template 或template 制作 张超英C+面向对象程序设计C+的初步知识【有默认参数的函数】 C+支持给函数参数赋默认值。 如:float f(float a, int c, int b=0, char d=a);【变量的引用】 在C+中,变量的“引用”就是变量的别名,对一个变量的“引用”的所有操作,实际上就是对其所代表的变量的操作。 例1.9 了解引用和变量的关系。 #include using namespace std; int main() int a=1
9、0; int &b=a; a=a*a; cout a “ ” b endl; b=b/5; cout a “ ” b endl; return 0; 制作 张超英C+面向对象程序设计C+的初步知识【内置函数】 C+提供一种函数调用高效率的方法,在编译时将所调用函数代码嵌入到主函数中,这种嵌入到主函数中的函数称为内置函数。 指定内置函数的方法:在函数定义首行左端加关键字inline。 例1.13 将函数指定为内置函数。 #include using namespace std; inline int max(int a, int b, int c) if (ba) a=b; if (ca) a=
10、c; return a; int main() int i=7, j=10, k=25; m=max(i, j, k); cout “ max= ” m endl; return 0; 制作 张超英C+面向对象程序设计C+的初步知识【作用域运算符】 每一个变量都有其有效的作用域,只能在变量的作用域内使用该变量,不能直接使用其他作用域中的变量。 C+提供作用域运算符“:”,它能指定所需要的作用域。 例1.16 局部变量和全局变量同名。 #include using namespace std; float a=13.5; int main() int a=5; cout a endl; cout
11、 :a string1; cout string2; string name3; string name3=“Zhang”,”Li”,”Fun”制作 张超英C+面向对象程序设计C+的初步知识【动态分配/撤消内存的运算符new和delete】 C+提供了简单而功能较强的运算符new和delete取代malloc和free函数。 如:new int; new int (100); new char10; new int 54; float *p=new float(3.14159) new运算符使用的一般格式: new 类型 初值; delete运算符使用的一般格式: delete pt; 制作 张超英C+面向对象程序设计C+的初步知识 例1.18 开辟窨以存放一个结构体变量。 #include #include using namespace std; struct Student char name10;int num; int main() Student *p; p=new Student; strcpy(p-name, “Wang Fun”); p-num=10123; p-sex=M; coutname“ ”sexendl; delete p; return 0; 制作 龙鹏飞