欢迎来到天天文库
浏览记录
ID:47042306
大小:50.00 KB
页数:6页
时间:2019-07-06
《实验一 类与对象(一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一类与对象㈠——类与对象的定义一、实验目的1.熟悉类的构成,掌握类的定义方法;2.掌握对象的定义及对象成员的访问方法;3.初步熟悉类与对象简单应用及编程。二、实验学时课内实验:2课时课外练习:2课时三本实验涉及的新知识㈠结构与类1.C++的结构C++中的结构是在C语言结构体的基础上扩展得到的。即在C++的结构体中,除可以定义数据成员外,还可以在定义函数,称为成员函数。⑴C++结构体的成员分为数据成员及成员函数;⑵C++结构的成员(数据成员或成员函数)可以定义为公有成员(public)、私有成员(private
2、)、保护成员(protected),其缺省定义为公有成员。2.C++的类C++提供了一种新的比结构体更为安全的数据类型,即“类”类型。类与结构体最为本质的区别是,成员的缺省定义为私有成员,体现了数据的封装与隐藏性。⑴同结构一样,在C++中,“类”是由用户自定义的一种数据类型;⑵C++的类中包括数据成员及成员函数,即将数据(数据成员)及对数据的操作(成员函数)封装在一个类中。㈡类的定义class类名{[private:]私有数据成员或成员函数public:公有数据成员或成员函数protected保护数据成员或成员函
3、数};1.定义格式2.说明:⑴类的定义(或称类的声明)中,private、protected、public可以按任意顺序出现任意次。⑵成员的访问限制①公有成员(public):所定义的成员是开放的,可在任何地方访问(类内部及程序的其他地方);②私有成员(private):所定义的成员是隐藏的,只能在类内部访问,不能在程序的其他地方访问;③保护成员(protected6):所定义的成员是半开放的,可在类内部访问,也可在其派生类中访问,但不能在程序的其他部分访问。在类体外可以通过调用类的公有成员使用私有数据成员或保护
4、数据成员,但不能改变其值。⑶数据成员通常定义为私有成员,以实现数据的隐藏;成员函数通常定义为公有成员,以通过消息传递访问数据成员;保护成员主要用于继承。3.数据成员⑴定义格式:类型数据成员名;⑵说明:①在定义类的数据成员时,由于计算机不给数据成员分配内存空间,不能使用auto、register、extern等进行说明,也不能赋初值;②数据成员既可为基本数据类型,也可以是复杂数据类型(数组、指针、引用、结构体变量、类的对象等)。4.成员函数在面向对象程序设计中,成员函数也称方法,是面向对象程序设计消息传递机制的实现
5、方式。⑴定义格式①在类中定义:返回类型函数名(形参表){函数体}②在类外定义:在类中只给出成员函数的原型,成员函数体在类的外部定义。类体内定义格式:返回类型(函数名(形参表);类体外定义格式:返回类型类名::函数名(形参表){函数体}⑵说明:①通常,当成员函数代码量较大时,在类外定义成员函数;②在定义成员函数以前一定要加上类名,类名与函数名间一定要用“::”,以表示与普通函数的区别;③成员函数中,应给出形参,当无形参时,通常应加上void;④成员函数的返回值类型,与函数原型中的返回类型必须相同;⑤成员函数与普通函
6、数一样,可以设置参数的默认值;⑥在类内部定义的成员函数为内置函数,如果要将类外部定义的成员函数设置为内联函数,则应在函数定义前加上inline。㈢对象的定义及成员的引用类和对象是面向对象程序设计最重要的两个概念。从程序设计的角度理解,类是将具有相同数据成员、成员函数的操作对象的概括(或抽象),是定义对象的模板;而对象是类的实例化或具体化,即“类”变量。1.对象的定义⑴格式:类名对象名表;⑵说明:在定义类时,计算机并不给类分配存储空间,只有定义了对象后,计算机才为对象分配存储空间。2.对象成员的使用6⑴数据成员的使
7、用格式:对象名.数据成员名(只能是公有数据成员)。⑵成员函数的使用格式:对象名.成员函数名(实参表)对象名.类名::成员函数名(实参表)⑶说明:①私有成员、公有成员不能在类的外部被使用,如果数据成员定义为私有成员、保护成员,则只能通过公有成员函数使用;②可以定义指向对象的指针用操作符“->”访问对象成员,也可以定义对象的引用,使用方法请参考实验二相关内容。4.对象的赋值可以用赋值方式将一个对象赋值给另一个对象,也称为对象的拷贝。⑴格式:对象名1=对象名2;⑵说明:①在使用对象赋值语句时,两个对象必须是相同的类;②
8、对象赋值后,二个对象仍是分离的,当改变某一对象成员的值时,另一对象不会因此而改变;③对象赋值是一种浅拷贝(即位拷贝,对象有深拷贝将在以后的实验中介绍)。四、实验内容㈠验证及认知实验按要求调试下列程序(exp_101.cpp),并回答相关问题。#include#includeclasscomplex{private:doublerea
此文档下载收益归作者所有