计算机等级考试二级C++各章内容摘要6

计算机等级考试二级C++各章内容摘要6,第1张

计算机等级考试二级C++各章内容摘要6,第2张

第六章类和对象的定义
[考点1] 1。类的定义类的定义可以分为两部分:描述部分和实现部分。描述部分解释了类中包含的数据成员和成员函数,实现部分定义了成员函数。类定义的一般格式如下://class类的描述部分class <类名> {public:<成员函数或数据成员的描述>//public成员,外部接口protected:<数据成员或成员函数的描述>//protected member private:<数据成员或成员函数的描述>//private member };//类的实现部分<每个成员函数的实现>
其中class是声明类的关键字;< class name >是要声明的类的名称,必须符合标识符定义规则;花括号表示类和类成员的声明范围,后跟一个分号,表示类声明的结束。类的成员包括数据成员和成员函数,分别描述类所表达的问题的性质和行为。关键字public、private和protected称为访问修饰符,它们限制类成员的访问控制范围。每个成员函数的实现可以在类内部或外部定义。如果在类体中定义了成员函数,它就不会出现在类的实现部分;如果所有成员函数都在类体中定义,那么可以省略类的实现部分。类体中定义的成员函数都是内联函数。
2。类成员的访问控制类中提供了三种访问控制权限:公共、私有和受保护。其中,public类型定义了类的外部接口,任何外部访问都必须通过外部接口进行;一个类型的私有成员只能被这个类的成员函数访问,任何来自类外的访问都是非法的;类型保护介于公共类型和私有类型之间,其特点可以体现在继承和派生上。
3。类的数据成员类中的数据成员描述了类所表达的问题的属性。数据成员在类体中的定义方式与普通变量相同,但是对数据成员的访问是由访问权限修饰符控制的。在定义一个类的数据成员时,要注意以下几个问题。(1)类中的数据成员可以是任意类型,包括整数、浮点、字符、数组、指针和引用等。,也可以是对象。但是,需要注意的是,只有另一个类的对象才能作为该类的成员存在,即作为该类的成员对象存在。自己类的对象不能作为自己类的成员存在,但是自己类的指针可以。(2)类体中不允许初始化已定义的数据成员。
4。该类的成员函数描述了该类所表达的问题的行为。类中的所有成员函数都必须在类体中描述。但是,成员函数的定义可以在类内部给出,也可以在类外部给出。第一种方法是直接在类内部定义成员函数。第二种方式是在类声明中给出成员函数的描述,在类外定义成员函数(但成员函数仍在类范围内)。这种在类外定义的成员函数的一般格式是: <返回类型> <类名>:: <成员函数名> (<参数表>){ <函数体> }在类外定义成员函数时,需要注意的是,在成员函数名前必须加上类名和作用域运算符(::)。范围运算符用于标识成员属于某个类。作用域运算符的使用格式如下: <类名>: <成员函数名> (<参数表>)或<类名>:: <数据成员名>。成员函数的两种定义是有区别的。如果成员函数的声明和定义在类中,那么这个成员函数就是一个内联函数。如果成员函数的声明在类内部,但它是在类外部定义的,那么对成员函数的调用是作为一般函数进行的。如果要将类外定义的成员函数作为内联函数对待,则必须在成员函数的定义前添加关键字“inline”,以明确表明该成员函数也是内联函数。除了被定义为内联函数之外,成员还可以被重载,并且它们的参数可以被设置为默认值。【考点2】对象的定义
1。对象的定义对象是一个类的实例,并且对象必须属于一个已知的类。因此,在定义对象之前,必须首先定义对象所属的类。对象的定义格式如下: <类名> <对象名> (<参数表>);其中<类名>是要定义的对象所属的类名。<对象名>中可以有一个或多个对象名,多个对象名用逗号分隔。在<对象名>中,它可以是常规对象名、对象的指针名或引用名,或者对象数组名。初始化对象时需要<参数表>。创建对象时,可以根据给定的参数调用相应的构造函数来初始化对象。没有参数意味着调用该类的默认构造函数。
2。对象的成员是由其类定义的成员,包括数据成员和成员函数。定义对象后,可以使用“.”运算符和"-> "运算符来访问对象的成员。其中,“”运算符适用于一般对象和引用对象,而“->”运算符适用于指针对象(即指向对象的指针)。访问对象成员的一般格式如下: <对象名>。<数据成员名称>或<对象名称>--> <数据成员名称> <对象名称>。<成员函数名> (<参数表>)或<对象名>--> <成员函数名> (<参数表>)构造函数和析构函数[/]构造函数的作用是在创建对象时用特定的值构造对象,并将对象初始化为特定的状态,使其具有不同于其他对象的特性。创建对象时,系统会自动调用构造函数。构造函数也是类的成员函数,但它是一个特殊的成员函数。除了一般成员函数的特点外,它还具有一些特殊的性质:(1)构造函数的名字必须与类名相同;(2)构造函数不指定返回类型,但隐含返回值,由系统使用;(3)构造函数可以有一个或多个参数,所以构造函数可以重载;(4)创建对象时,系统会自动调用构造函数。
2。默认构造函数和默认析构函数。默认构造函数是调用时不必提供参数的构造函数。默认构造函数的函数名与类名相同,其参数表要么是空,要么其所有参数都有默认值。在前面定义的Date类中,构造函数Date(int y = 2000);是默认的构造函数。如果类中定义了默认构造函数,则使用该构造函数;如果类中没有定义构造函数,编译器将生成一个不带参数的公共默认构造函数。其定义格式如下: <类名>: <类名>(){}每个类都必须有一个析构函数。如果一个类没有声明析构函数,编译器会生成一个公共析构函数,也就是默认析构函数。其定义格式如下: <类名>:~ <类名>(){}
3。copy constructor类中有一个特殊的构造函数叫做copy constructor,它初始化一个用已知对象创建的类似对象。复制构造函数的一般格式如下: <类名>:: <类名>(const <类名> & <引用对象名>){//复制构造函数体}复制构造函数有以下特点:(1)也是构造函数,所以函数名和类名相同,不能指定函数反转类型。(2)只有一个参数,是对同类对象的引用。(3)每个类中必须有一个复制构造函数。如果复制构造函数没有在类中声明,编译器将自动生成一个具有上述形式的公共复制构造函数。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机等级考试二级C++各章内容摘要6

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情