第8章类和对象
类和对象
类对象
构造函数和析构函数
类的初始化
复杂的对象表示
堆与拷贝构造函数
this指针
引用
常类型
类构成了实现C++面向对象程序设计的基础,在C++语言面向对象程序设计中占据着核心地位。它把数据和作用在这些数据上的操作组合在一起,是封装的基本单元。对象是类的实例,类定义了属于该类的所有对象的共同特性。
类和对象
从一般意义上讲,对象(Object)是现实世界中的客观事物。类是把具有相同属性的事物划分为一类,从而得出的抽象概念。类是一组性质相同的对象的程序描述,它由概括了一组对象共同性质的数据和函数组成。
面向对象的程序设计中最基本的概念是对象,一般意义上的对象指的是一个实体的实例,在这个实体中包括了特定的数据和对这些数据进行操作的函数。对象的核心概念就是通常所说的“封装性”(encapsulation)、“继承性”(inheritance)和“多态性”(polymorphism)。
类的定义
类是一种用户自定义的数据类型,它的一般定义格式如下:
class <类名>
{
private:
<私有数据成员和成员函数>;
protected:
<保护数据成员和成员函数>;
public:
<公有数据成员和成员函数>;
}
<各个成员函数的实现>;
其中,class是定义类的关键字。<类名>是一个标识符,用于惟一标识一个类。一对大括号内是类的说明部分,说明该类的所有成员。类的成员包括数据成员和成员函数两部分。类的成员从访问权限上分有以下三类:公有的(public)、私有的(private)和保护的(protected),其中默认为private权限。说明为公有的成员可以被程序中的任何代码访问;说明为私有的成员只能被类本身的成员函数及友元类的成员函数访问,其他类的成员函数,包括其派生类的成员函数都不能访问它们;说明为保护的成员与私有成员类似,只是除了类本身的成员函数和说明为友元类的成员函数可以访问保护成员外,该类的派生类的成员也可以访问。
例8-1:
include <>
class Sample
{
int x,y;
public:
Sample() {x=y=0;}
Sample(int a,int b) {x=a;y=b;}
Void disp()
{
cout<<”x=”<<x<<”,y=”<<y<<endl;
}
};
void main()
{
Sample s1,s2(1,2);
();
();
}
此程序的运行结果为:
x=0,y=0
x=1,y=2
类的成员函数
定义类的函数成员的格式如下:
返回类型类名::成员函数名(参数说明)
{
函数体
}
类的成员函数对类的数据成员进行操作,成员函数的定义体可以在类的定义体中,如例8-2所示。
例8-2:类中的成员函数在类定义中直接描述示例。
class Location {
public:
void init(int x,int y)
{
X=x;
Y=y;
}
private:
int X,Y;
public:
int GetX()
{ return X; }
int GetY()
{ return X; }
}
类的成员函数也可以另外定义,而在类定义时给出函数头。
例8-2的成员函数可说明如下:
void Location::init(int x,int y)
{
X=x;
Y=y;
}//将x,y的值分别赋给X,Y
int Location::GetX()
{
return X;
}
int Location::GetY()
{
return Y;
}
一个类的说明可分为定义性说明和引用性说明两种,引用性说明仅说明类名。例如:class Location;
引用性说明不能用于说明类的变量,但可说明指针,例如: class myClass{
private:
int i;
myclass member;//错
myclass *pointer;//对
}
注意:在类定义体外定义成员函数时,需在函数名前加上类域标记,因为类的成员变量和成员函数属于所在的类域,在域内使用时,可直接使用成员名字,而在域外使用时,需在成员名外加上类对象的名称。
第8章 类和对象 来自淘豆网m.daumloan.com转载请标明出处.