工程化程序设计(VC++.NET)第2章C++语言基础_第1页
工程化程序设计(VC++.NET)第2章C++语言基础_第2页
工程化程序设计(VC++.NET)第2章C++语言基础_第3页
工程化程序设计(VC++.NET)第2章C++语言基础_第4页
工程化程序设计(VC++.NET)第2章C++语言基础_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 国家信息化计算机教育认证国家信息化计算机教育认证 高等职业教育电子信息类专业高等职业教育电子信息类专业 “双证课程双证课程”培养方案配套演示文稿培养方案配套演示文稿 中国高等职业技术教育研究会中国高等职业技术教育研究会 endl; 案例分析案例分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 int someInt; int int 声明声明rIntrInt是对整数的引用,初始化为引用是对整数的引用,初始化为引用someIntsomeInt。在。在 此,要求此,要求someIntsomeInt已经有声明或定义,而引用仅仅是它的别已经有声明或定义,而引用仅仅是它的别 名。名。 引用的

2、概念引用的概念 中国高等职业技术教育研究会中国高等职业技术教育研究会 int intOne=5; cout“intOne:”intOneendl; cout“rInt:”rIntendl; rInt=7; cout“intOne:”intOneendl; cout“rInt:”rIntendl; 程序的运行结果如下:程序的运行结果如下: intOne:5 rInt:5 intOne:7 rInt:7 引用的概念引用的概念 中国高等职业技术教育研究会中国高等职业技术教育研究会 int intOne=5; cout“intOne:”intOneendl; cout“rInt:”rIntendl;

3、cout“ cout“ 程序的运行结果如下:程序的运行结果如下: intOne:5 rInt:5 void swap(int,int); void main() void main() int a=3,b=8; int a=3,b=8; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; swap(a,b); swap(a,b); cout“after swappingn”; cout“after swappingn”; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; void swap(int x,int y) void s

4、wap(int x,int y) int temp=x; / int temp=x; /交换两个形参交换两个形参 x=y;x=y; y=temp; y=temp; 程序的运行结果如下:程序的运行结果如下: a=3,b=8a=3,b=8 after swapping after swapping a=3,b=8 a=3,b=8 按值传递按值传递 中国高等职业技术教育研究会中国高等职业技术教育研究会 ); void main() void main() int a=3,b=8; int a=3,b=8; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; swap(

5、 swap( cout“after swappingn”; cout“after swappingn”; cout“a=”a“,b=”bendl; cout“a=”a“,b=”bendl; void swap(int void swap(int * * x,int x,int * * y) y) int temp= int temp= * * x; / x; /交换两个形参交换两个形参 * * x= x= * * y; y; * * y=temp; y=temp; 运行结果为:运行结果为: a=3,b=8a=3,b=8 after after swappingswapping a=8,b=3

6、a=8,b=3 地址传递地址传递 中国高等职业技术教育研究会中国高等职业技术教育研究会 void swap(int void main() void main() int x=5; int x=5; int y=6; int y=6; cout“before swap,x:”x“,y:”yendl; cout“before swap,x:”x“,y:”yendl; swap(x,y); swap(x,y); cout“after swap,x:”x“,y:”yendl; cout“after swap,x:”x“,y:”yendl; void swap(int int temp; temp=r

7、x; temp=rx; rx=ry; rx=ry; ry=temp; ry=temp; 运行结果为:运行结果为: before before swap,x:5,y:6swap,x:5,y:6 after after swap,x:6,y:5 swap,x:6,y:5 引用传递引用传递 中国高等职业技术教育研究会中国高等职业技术教育研究会 p; p=new double; p=new double; 系统自动根据系统自动根据doubledouble类型的空间大小开辟一个内存单元,并将地类型的空间大小开辟一个内存单元,并将地 址放在指针址放在指针p p中。运算符中。运算符deletedelete操

8、作是释放操作是释放newnew请求到的内存。例如:请求到的内存。例如: delete p; delete p; 2.5 new与与delete 中国高等职业技术教育研究会中国高等职业技术教育研究会 ; 定义类定义类 中国高等职业技术教育研究会中国高等职业技术教育研究会 / double data_value; /声明一个私有类型数据声明一个私有类型数据 public:public: void set_value(double); / void set_value(double); /声明一个公有类型的成员函数声明一个公有类型的成员函数 double get_value(void); /doub

9、le get_value(void); /声明一个公有类型的成员函数声明一个公有类型的成员函数 int get_num(void); /int get_num(void); /声明一个公有类型的成员函数声明一个公有类型的成员函数 sam; /sam; /声明类对象声明类对象samsam 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 data_value=v; double counter:get_value(void) /double counter:get_value(void) /成员函数的定义成员函数的定义 double dd;double dd; dd=sin

10、(10.0dd=sin(10.0* *data_value);data_value); return(dd);return(dd); int counter:get_num(void) /int counter:get_num(void) /成员函数的定义成员函数的定义 int ii;int ii; ii=int(data_value);ii=int(data_value); return(ii);return(ii); main()main() sam.set_value(50.0); sam.set_value(50.0); / /设置初值设置初值 coutThe value is“ co

11、utThe value is“ sam.get_value()endl;sam.get_value()endl; coutThe num is“ coutThe num is“ sam.get_num()endl;sam.get_num()endl; return(0); return(0); 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 int i; public: public: float f;float f; void fun( );void fun( ); ; example A; /example A; /声明类对象声明类对象A A 定义对象定义对象 中国

12、高等职业技术教育研究会中国高等职业技术教育研究会 A.fun(); 2 2)在本例中,对象)在本例中,对象A A所能使用的数据和函数只有变量所能使用的数据和函数只有变量f f和和 成员函数成员函数funfun。变量变量i i为类为类exampleexample的私有数据,不能的私有数据,不能 通过通过A.iA.i使用,如何访问使用,如何访问i i,请思考。,请思考。 定义对象定义对象 中国高等职业技术教育研究会中国高等职业技术教育研究会 ”return;”。因为构造函数专门用于创建对象和为。因为构造函数专门用于创建对象和为 其初始化,所以它不能随意被调用。其初始化,所以它不能随意被调用。 3

13、3)如果一个类对象是另一个类的数据成员,则在那个类的对象)如果一个类对象是另一个类的数据成员,则在那个类的对象 创建所调用的构造函数中,对该成员创建所调用的构造函数中,对该成员( (对象对象) )自动调用其构造函数。自动调用其构造函数。 中国高等职业技术教育研究会中国高等职业技术教育研究会 cout“constructing student.n”; someHours=100; someHours=100; gpa=3.5; gpa=3.5; / /* *Student()Student() cout“destructing student.n”; cout“destructing stude

14、nt.n”; * */ / protected: protected: int someHours; int someHours; float gpa; float gpa; ; ; 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 /*Teacher( ) cout“destructing teacher.n”; */ ; class TutorPair public: TutorPair( ) cout“construcing tutorpair.n”; noMettings=0; /* TutorPair( ) cout“destructing tutorpair.

15、n”; */ protected: Student student; Teacher teacher; int noMettings; /会晤次数会晤次数 ; 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 cout“back in main.n”; 程序运行结果如下:程序运行结果如下: constructing student. constructing teacher. constructing tutorpair. back in main. /*destructing tutorpair. destructing teacher. destructing stu

16、dent.*/ 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 int mile,yard; public: public: Distance(); / Distance(); /声明构造函数声明构造函数 Distance(int,int); /Distance(int,int); /声明重载的构造函数声明重载的构造函数 void get_value( ); /void get_value( ); /声明成员函数声明成员函数 Distance add_value(Distance); /Distance add_value(Distance); /声明成员函数声明成员函

17、数add_valueadd_value / /参数为参数为DistanceDistance类的对象,返回值也是类的对象,返回值也是DistanceDistance类的对象类的对象 void display( ); /void display( ); /声明成员函数声明成员函数 ; 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 mile=0; yard=0; yard=0; Distance:Distance(int v1,int v2) / Distance:Distance(int v1,int v2) /定义重载的构造函数体定义重载的构造函数体 mile=v1;

18、mile=v1; yard=v2; yard=v2; void Distance:get_value( ) /void Distance:get_value( ) /定义成员函数体定义成员函数体 cout“Enter mile:”; coutmile; cinmile; cout“Enter yard:”; coutyard; cinyard; 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 Distance B; B.yard=yard+A.yard; B.yard=yard+A.yard; B.mile=0; B.mile=0; if(B.yard=1760) if

19、(B.yard=1760) B.mile=1; B.mile=1; B.yard=-1760; B.yard=-1760; B.mile+=mile+A.mile; B.mile+=mile+A.mile; return B;return B; void Distance:display( ) /void Distance:display( ) /定义成员函数体定义成员函数体 coutmile“miles”yard“yards”endl; coutmile“miles”yard“yards”endl; 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 / Distance

20、 D(10,100); /定义对象定义对象D D,并传入初值,并传入初值 Distance F,G; /Distance F,G; /定义对象定义对象F F和和G G F.get_value( ); F.get_value( ); G=D.add_value(F); /G=D+F G=D.add_value(F); /G=D+F cout“The first distance:”; cout“The first distance:”; D.display( ); D.display( ); cout“The second distance:”; cout“The second distance

21、:”; F.display( ); F.display( ); cout“The third distance:”; cout“The third distance:”; G.display( ); G.display( ); 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 int a,b,c; public:public: static int s; / static int s; /说明静态数据成员说明静态数据成员 static void fun(); /static void fun(); /静态成员函数静态成员函数 ; int A:s=0; /int A:s=0

22、; /静态数据成员在类外声明,并初始化静态数据成员在类外声明,并初始化 静态数据成员和成员函数静态数据成员和成员函数 中国高等职业技术教育研究会中国高等职业技术教育研究会 static int count; public:public: objcount()objcount() count+;count+; int get()int get() return count;return count; 程序的运行结果如下: 3 4 void main()void main() objcount a1,a2,a3;objcount a1,a2,a3; couta1.get()endl;couta1.

23、get()endl; objcount a4;objcount a4; couta3.getendl;couta3.getendl; 中国高等职业技术教育研究会中国高等职业技术教育研究会 A=a; B+=a; B+=a; static void f1(person m);static void f1(person m); private:private: int A; int A; static int B; static int B; ; void person:f1(person m)void person:f1(person m) coutA=m.Aendl; coutA=m.Aendl

24、; coutB=Bendl; coutB=Bendl; int person:B=0;int person:B=0; void main()void main() person p(10),Q(20); person p(10),Q(20); person:f1(p); person:f1(p); person:f1(Q); person:f1(Q); 中国高等职业技术教育研究会中国高等职业技术教育研究会 type vars; . . public: public: friend friend 函数类型函数类型 函数名称函数名称(); /(); /友元函数友元函数 . ; ; 中国高等职业技术

25、教育研究会中国高等职业技术教育研究会 m_x=m_y=0; CPoint(unsigned x,unsigned y) CPoint(unsigned x,unsigned y) m_x=x;m_x=x; m_y=y;m_y=y; void Print( ) void Print( ) coutPoint(m_x,m_y)endl;coutPoint(m_x,m_y)endl; friend CPoint Inflate(CPoint / friend CPoint Inflate(CPoint /声明一个友元函数声明一个友元函数 private:private: unsigned m_x,m

26、_y; unsigned m_x,m_y; ; 中国高等职业技术教育研究会中国高等职业技术教育研究会 ptTemp.m_x+=nOffset; ptTemp.m_y+=nOffset; return ptTemp; void main() CPoint pt(10,20); pt.Print(); pt=Inflate(pt,3); pt.Print(); 例题分析例题分析 中国高等职业技术教育研究会中国高等职业技术教育研究会 int i; protected: protected: int x; int x; public: public: Parent(); Parent(); void

27、change(); void change(); void display(); void display(); ; Parent:Parent()Parent:Parent() x=0; x=0; i=0; i=0; void Parent:change()void Parent:change() x+; x+; i+; i+; void Parent:display()void Parent:display() cout“x=“xendl; cout“x=“xendl; class Son:public Parentclass Son:public Parent public: publi

28、c: void modify(); void modify(); ; void Son:modify()void Son:modify() x+; x+; 中国高等职业技术教育研究会中国高等职业技术教育研究会 int intOne; int int intOne=5; intOne=5; cout“intOne:”intOneendl; cout“intOne:”intOneendl; cout“rInt:”rIntendl; cout“rInt:”rIntendl; cout“dl; cout“ cout“ int intTwo=8; int intTwo=8; rInt=intTwo; r

29、Int=intTwo; cout“intOne:”intOneendl; cout“intOne:”intOneendl; cout“intTwo:”intTwoendl;cout“intTwo:”intTwoendl; cout“rInt:”rIntendl; cout“rInt:”rIntendl; cout“ l; cout“ l; cout“cout“ 中国高等职业技术教育研究会中国高等职业技术教育研究会 & CEAC信息化培训认证管理办公室信息化培训认证管理办公室 . 4. 4.类的封装性是类的封装性是_。 A. A. 类的私有成员不能被外面的函数直接访问类的私有成员不能被外面的函数直接访问 B. B. 类的公有成员不能被外面的函数直接访问类的公有成员不能被外面的函数直接访问 C. C. 类的保护成员不能被外面的函数直接访问类的保护成员不能被外面的函数直接访问 5.5.下列说法正确的是下列说法正确的是_。 A. A. 类的构造函数创建类对象,分配空间类的构造函数创建类对象,分配空间 B. B. 类的构造函数可以有返回类型类的构造函数可以有返回类型 C. C. 类的构造函数可以重载。类的构造函数可以重载。 D. D. 类的构造函数可以在类外部定义类的构造函数可以在类外部定义 作业及练习作业及练习 中国高等职业技术教育研究会中国高等职业技术教育

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论