7.1 对象的定义
对象是类的实例,一个对象必须属于一个已知类。因此在定义对象之前,必须先定义该对象所属的类。
对象的定义格式如下:
<类名><对象名>(<参数列表>);
其中<类名>是待定义的对象所属的类的名字。<对象名>中可以有一个或多个对象名,多个对象名之间用逗号分隔。<参数表>是初始化对象时需要的,建立对象时可以根据给定的参数调用相应的构造函数对对象进行初始化。无参数时表示调用类的默认构造函数。
除了可以定义一般类对象外,还可以定义对象数组、指向对象的指针或引用。
Date date1,date[31];
Date *pDate;
Date &date2=date1;
对象的定义与定义某类型的变量是一致的。类名Date相当于系统提供的内部数据类型或者是用户自定义的结构等类型,对象名与一般的变量名相同。其中date1是对象名;dates[31]是一个对象数组,它有31个元素,每一个元素都是Date类的对象;pDate是指向Date类对象的指针;date2是一个Date类对象的引用,定义时对它进行初始化,使它成为date1的别名。
7.2 对象的成员
一个对象的成员就是该对象的类所定义的成员,包括数据车管员数据成员和成员函数。定义了对象后,可以使用"."运算符和"->"运算符访问对象成员。其中"."运算符适用于一般对象和引用对象,而"->"运算符适用于指针对象(即指向对象的指针)。
访问对象成员的一般格式如下:
<对象名>.<数据成员名>或<对象名>-><数据成员名>
<对象名>.<成员函数名>(<参数表>)或<对象名>-><成员函数名>(<参数表>)
实际上一般对象成员与指针对象成员的表达方式只是形式上有所不同,本质上是相同的。
<对象名>-><数据成员名> 等价于 (*<对象名>).<数据成员名>
#include<iostream>
using namespace std;
class Point
{
private:int X, Y;
public:void set(int x, int y);void move(int x, int y);int getx() { return X; };int gety() { return Y; };
};
void Point::set(int x, int y)
{X = x;Y = y;
}
void Point::move(int x, int y)
{X += x;Y += y;
}
int main()
{Point p1, p2;p1.set(1, 2);p2.set(3, 4);p1.move(5, 6);p2.move(7, 8);cout << "Point1是" << p1.getx() <<"," << p1.gety() << endl;cout << "Point2是" << p2.getx() <<"," << p2.gety() << endl;return 0;
}
参考《全国计算机等级考试二级教程——C++语言程序设计》