欢迎来到天天文库
浏览记录
ID:50043714
大小:81.00 KB
页数:47页
时间:2020-03-08
《C语言程序设计 教学课件 作者 黄锐军 第10章 C++ 基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章C++基础在这一章中将介绍C++语言程序的基础,引入面向对象程序设计的概念,介绍类与对象、函数重载、指针与引用等知识。C++是对C的扩充,是面向对象的程序设计语言,面向对象程序设计是目前程序设计的发展方向。面向对象程序设计的主要特性是对数据与操作函数的封装、继承、抽象和多态性,在这一章中仅介绍封装的特性。10.1类与对象10.2this指针10.3构造函数与析构函数10.4引用与复制构造函数10.5动态内存分配10.6类成员的访问规则10.7对象的赋值10.8运算符重载10.1类与对象10.1.1类与对象的引
2、入但是结构仅对数据进行封装,实际上时间的有效性函数、输入函数、显示函数等都与这3个变量有关,因此可以考虑把这些函数也封装在一起,这种比结构更进一步的,既封装数据又封装函数的方法称为类,用class来表示,具体是:classtime{public:inth,m,s;intisValid();//有效性函数voidinput();//输入函数voidshow();//显示函数};一般一个类的定义格式是:class类的名称{public:成员变量列表;成员函数列表;};其中public是成员的属性说明,表示公有成员,类的成
3、员还可以声明为private(私有成员)或protected(保护成员),不同属性的成员在访问时规则不同。类定义好之后,可以像结构那样定义变量,方法是:类的名称变量名称;在C++中类定义的变量称为对象(object),在定义对象时,也可以用类名来定义类变量的指针,注意在使用时类名称之前不写class。例如:timet;//t是类time的一个对象;time*pt;//pt是一个指向类对象的指针10.1.2类成员的访问有了类对象或指针之后,可以通过对象或指针访问类的成员变量,对象用”.”来连接成员实现对成员的访问,而对
4、象指针用“->”来实现对成员的访问,方法与结构相似。例如:timet,*pt;pt=&t;则t.h、t.m、t.s或pt->h、pt->m、pt->s分别访问t对象的h、m、s成员。类与结构不同,类中可以有成员函数,可以通过对象或指针来调用成员函数,例如:t.isValid();//调用isValid()函数,判断t对象是否有效t.input();//调用input()函数,输入对象的成员变量t.show();//调用show()函数,输出t对象的成员变量也可以用指针来调用成员函数,例如:pt->isValid();
5、//与t.isValid()一样pt->input();//与t.input()一样pt->show();//与t.show()一样关于成员函数,有以下规则:(1)成员函数是类的函数,不能独立执行,必须要用一个对象或对象指针来调用执行,什么对象调用成员函数,成员函数就作用于什么对象,既成员函数的执行结果依赖于具体的对象;(2)成员函数中可以存取同一个类中的成员变量,这些成员变量就是相应对象的成员变量;成员函数也可以调用同一个类中的其它成员函数;(3)成员函数可以定义在类的里面,也可以定义在类的外面;一般程序代码长时,
6、定义在外面,程序代码短时定义在里面。当成员函数定义在类外面时,在类中要有成员函数的原形说明;成员函数定义在类的里面时,形式上与普通函数没有什么区别,但如定义在外面,则编写格式如下:函数类型类名称::成员函数名称(参数列表){//函数代码}结构一般只用来封装变量,类不但可以封装变量,而且还可以封装函数,但是千万不要认为函数在内存中是被封装在每个对象中的,每个对象都有自己的成员函数代码。实际上成员函数代码是被所有这个类的对象所公用的,只是每个对象的成员值不同,成员函数依赖于这些成员值的执行,因此每个对象调用成员函数的行为
7、相似,但具体结果往往不同。类不但可以封装成员变量与成员函数,还可以继承,还有多态性,它比结构更灵活,使用更方便。在C语言中没有类的概念,只有结构,而C++中具有结构也有类,类在C++中被广泛使用,C++通过类来实现面向对象的程序设计。对象变量也像结构变量一样,可以在一个函数中定义成局部变量,也可以作为函数参数,或作为函数的返回值,可以定义对象数组等。10.2this指针10.2.1对象指针与this指针类的对象是与结构相似的内存结构实体,对象有指针,指针指向对象内存变量,实际上在类的成员函数中也存在一个指针,这个指针
8、就是this指针。关于this指针的规则有:(1)this指针是成员函数中的指针,任何成员函数中都可以访问到这个指针;(2)this指针的值与具体的对象有关,它实际上就是调用成员函数的对象的指针,不同的对象去调用成员函数,this指针值也不同;(3)成员函数中访问的该类的任何成员变量都是this->成员变量,只不过“this->”部分被隐含不写
此文档下载收益归作者所有