C++语言程序设计 清华大学郑莉 对象数组 数 。声明: 类名 数组名元素个数]: 组 访问方法: 通过下标访问 数组名[下标]成员名 21
C++语言程序设计 清华大学 郑莉 21 对象数组 ⚫ 声明: 类名 数组名[元素个数]; ⚫ 访问方法: 通过下标访问 数组名[下标].成员名 数 组
C++语言程序设计 清华大学郑莉 对象数组初始化 数。 数组中每一个元素对象被创建时,系统 都会调用类构造函数初始化该对象。 组 ●j 通过初始化列表赋值。 例: Point A[2]=Point(1,2),Point(3,4)}; ● 如果没有为数组元素指定显式初始值, 数组元素便使用默认值初始化(调用默 认构造函数)。 22
C++语言程序设计 清华大学 郑莉 22 对象数组初始化 ⚫ 数组中每一个元素对象被创建时,系统 都会调用类构造函数初始化该对象。 ⚫ 通过初始化列表赋值。 例: Point A[2]={Point(1,2),Point(3,4)}; ⚫ 如果没有为数组元素指定显式初始值, 数组元素便使用默认值初始化(调用默 认构造函数)。 数 组
C++语言程序设计 清华大学郑莉 数组元素所属类的杓造丞数 数·不声明构造函数,则采用默认构造函数。 0 各元素对象的初值要求为相同的值时, 组 可以声明具有默认形参值的构造函数。 各元素对象的初值要求为不同的值时, 需要声明带形参的构造函数。 当数组中每一个对象被删除时,系统都 要调用一次析构函数。 23
C++语言程序设计 清华大学 郑莉 23 数组元素所属类的构造函数 ⚫ 不声明构造函数,则采用默认构造函数。 ⚫ 各元素对象的初值要求为相同的值时, 可以声明具有默认形参值的构造函数。 ⚫ 各元素对象的初值要求为不同的值时, 需要声明带形参的构造函数。 ⚫ 当数组中每一个对象被删除时,系统都 要调用一次析构函数。 数 组
C++语言程序设计 清华大学郑莉 例6-3对象数组应用举例 //Point.h 数 #if !defined(POINT H) #define POINT H class Point public: 组 Point(); Point(int xx,int yy); ~Point(); void Move(int x,int y); int Getx()freturn X;} int GetY() freturn Y;} private: int X,Y; 。米 #endif 24
C++语言程序设计 清华大学 郑莉 24 例6-3 对象数组应用举例 //Point.h #if !defined(_POINT_H) #define _POINT_H class Point { public: Point(); Point(int xx,int yy); ~Point(); void Move(int x,int y); int GetX() {return X;} int GetY() {return Y;} private: int X,Y; }; #endif 数 组
//6-2.cpp #include<iostream> using namespace std; #include "Point.h" Point:Point() {X=Y=0; cout<<"Default Constructor called."<<endl; } Point::Point(int xx,int yy) X=xx; Y=yy; cout<<"Constructor called."<<endl; } Point :~Point() cout<<"Destructor called."<<endl; void Point Move(int x,int y) {X=x;Y=y;} 25
//6-2.cpp #include<iostream> using namespace std; #include "Point.h" Point::Point() { X=Y=0; cout<<"Default Constructor called."<<endl; } Point::Point(int xx,int yy) { X=xx; Y=yy; cout<< "Constructor called."<<endl; } Point ::~Point() { cout<<"Destructor called."<<endl; } void Point ::Move(int x,int y) { X=x; Y=y; } 25