第12章 c++语言编程

第12章 c++语言编程

ID:25190651

大小:109.00 KB

页数:20页

时间:2018-11-16

第12章  c++语言编程_第1页
第12章  c++语言编程_第2页
第12章  c++语言编程_第3页
第12章  c++语言编程_第4页
第12章  c++语言编程_第5页
资源描述:

《第12章 c++语言编程》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第12章C++语言编程基础C++程序设计语言可以看作C语言的改进和升级,不仅完全兼容了C语言的语法和函数库,还引入了面向对象、运算符重载、多态性、数据流和模板等最新的编程思想。极大地保证了源代码的生产率、质量和可重用性。GNU项目为Linux系统上C++开发提供了G++编译器,GDB调试器也能用来调式C++程序。本章简单讲解C++语言的特性与基本用法。12.1类和数据抽象类和数据抽象是面向对象思想的基本范畴,面向对象思想将任何事物看作对象,对象有自己的属性和行为,收集这些属性就是数据抽象的任务。。如果把同一类

2、事物的属性和行为作为一个类别来认识,这个类别就是该类事物的类,每一个有相同属性和行为的事物都是该类的对象。12.1.1用类实现数据抽象在C++语言中,类是封装的程序包。程序包里有自身的数据和函数,这些数据可看作属性,函数可看作是行为。对象是由类在源代码中生成出来独立的程序体,对象具有类的全部属性和行为。因此可以认为,对象是有“生命”的程序体,它能通过行为改变自己的属性,也能根据属性产生不同的行为。12.1.2类作用域和访问类成员类的作用域是整个文件,类的成员数据和成员函数的作用域在该类之中。类的所有成员函数在

3、类的内部都可以直接访问其他类成员,并且可以按名称引用。在成员函数中定义的变量,作用域是该函数。如果成员函数定义了与类成员具有相同名称的数据,要访问同名的类成员需要加入作用域解析运算符(::)。12.1.3从实现中分离接口良好的软件工程习惯要求接口与实现分离。这种方式使程序的修改更为容易,正如使用类的程序所关心,只要类的接口没有变化,对类内部的改变不会影响程序的其他部分。类的接口应在设计时尽量考虑周全,避免过于频繁的改动。当程序需要使用该类时,只用在程序文件中包含类的接口文件。12.1.4控制访问成员成员的默认

4、访问模式是private,因此类定义的开始到第一个成员访问说明符之间的所有成员都是private成员。在每个成员访问说明符之后,由该成员说明符所调用的模式将在下一个成员访问说明符或者类定义结束之前保持有效。成员访问说明符可以重复,但通常我们将同一类成员方在一起说明,这样可避免混淆。12.1.5构造函数和析构函数所有的类都可定义一个或多个构造函数和析构函数。构造函数是与类同名的函数,构造函数的作用是在对象生成时初始化成员数据。C++语言规定,每个类必须有构造函数,如果没有为该类定义构造函数,那么编译器会自动加上

5、一个没有参数的默认构造函数,默认构造函数不会对类成员数据进行初始化。12.1.6const对象和const成员函数const修饰符的作用是声明常量型的变量,修改const类型的数据将引起编译错误。对象也可以被定义为const类型,这样该对象内的数据就不能再修改。如下例所示:constBuddyb("Tom",1234567890,"China");//生成常量对象b.setBuddy("Jerry",4567890123,"USA");//该语句是非法的当对象b被定义为const类型后,任何途径对成员数据的修

6、改都是错误的。C++语言还规定,只有被定义为const类型的成员函数才能访问const类型对象的数据。即使成员函数Buddy::printBuddy()不会修改该对象的数据,也被拒绝访问。所以,当对象被当作const类型使用时,需要用到的成员函数必须定义为const类型。12.1.7friend对象和friend类friend被称作友元。类的friend函数并不是该类的成员函数,但被定义为该类的友元后,friend函数可以访问类的private成员。friend函数引用的参数是类的地址,通过类的地址就可以访问

7、该类的成员。这一用法与指针的原理是相似的。类也可以作为另一个类的友元,例如Class2类作为Class1类的友元,那么需要在Class1类的定义中将Class2类定义为友元。12.1.8this指针this指针是类定义中指向自身的指针,每个对象都可以通过this指针来访问它自己的地址。对象的this指针并不是对象本身的组成部分,它不占用对象的内存空间。在每次非static成员函数调用对象的时候,this指针作为隐藏的第一个参数由编译器传递给对象。12.1.9动态内存分配在C语言中,动态分配内存可使用mallo

8、c()和free()函数,这种分配方式必须指定分配内存空间的长度。C++语言提供了new和delete运算符执行动态内存分配,这种分配方式优于C语言的分配方式,申请内存一般形式是:指针名=new数据类型;释放内存的形式为:delete指针名;12.1.10static类成员在C语言中static修饰符用来定义静态数据类型,如果将类成员数据定义为static类型,那么该类生成的所有对象将使用同一个内存

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。