一维数组格式: 类名 数组名[下标表达式];
例:有五个学生的分数需要描述,定义score数组,每一个数组元素都是score类的一个对象。
score rec[5]; //定义类score的对象数组rec,含有5对象数组对象。——在建立数组时,同样要调用构造函数。有几个数组元素就要调用几次构造函数。
——一个参数
score s1[4]={100,99,98,97};先后四次调用带一个参数的构造函数,分别初始化是s1[0]、s1[1]、s[2]、s1[3]。
——多个参数
score rec[3]= //定义对象数组 rec { score(10,11), //调用构造函数,为第一个对象数组元素提供实参10和11 score(20,21), //调用构造函数,为第二个对象数组元素提供实参20和21 score(30,31) //调用构造函数,为第三个对象数组元素提供实参30和31 };对象数组的代码示例如下
#include<iostream> using namespace std; const int N=3; class score{ //声明类score public: //公有 score(int a,int b); //声明构造函数 void printscore (); //声明 print函数 private: //私有 int mid_exam; //私有成员函数 int fin_exam; //私有成员函数 }; score::score(int a,int b) //定义构造函数 { mid_exam=a; fin_exam=b; } void score::printscore() //定义 print函数 { cout<<mid_exam<<" "<<fin_exam<<endl; } int main() { score rec[3]={ //定义对象数组 score(10,11), //调用构造函数,为第一个对象数组元素提供实参10和11 score(20,21), //调用构造函数,为第二个对象数组元素提供实参20和21 score(30,31) //调用构造函数,为第三个对象数组元素提供实参30和31 }; for(int i=0;i<N;i++) { rec[i].printscore(); } return 0; }运行结果:
10 11 20 21 30 31声明对象指针的一般语法格式: 类名* 对象指针名;
使用对象指针时,首先要把它指向一个已创建的对象,然后才能访问该对象的公有成员。 一般情况下,用点“.”来访问对象的成员,当用指向对象的指针来访问对象成员时,就要用“->”操作符。
示例代码如下:
#include<iostream> using namespace std; const int N=3; class score{ //声明类score public: //公有 void setscore(int a,int b); //声明 setscore函数 void printscore (); //声明 print函数 private: //私有 int mid_exam; //私有成员函数 int fin_exam; //私有成员函数 }; void score::setscore(int a,int b) //定义 setscore函数 { mid_exam=a; fin_exam=b; } void score::printscore() //定义 print函数 { cout<<mid_exam<<" "<<fin_exam<<endl; } int main() { score s1; //定义类score的对象s1 score *pd; //定义pd为指向类score的对象的指针 pd=&s1; //将对象s1的起始地址赋给pd; pd->setscore(10,11); pd->printscore(); return 0; }运行结果:
10 11代码如下:
#include<iostream> using namespace std; const int N=3; class score{ //声明类score public: //公有 void setscore(int a,int b); //声明 setscore函数 void printscore (); //声明 print函数 private: //私有 int mid_exam; //私有成员函数 int fin_exam; //私有成员函数 }; void score::setscore(int a,int b) //定义 setscore函数 { mid_exam=a; fin_exam=b; } void score::printscore() //定义 print函数 { cout<<mid_exam<<" "<<fin_exam<<endl; } int main() { score s[2]; //定义类score的对象s score *pd; //定义pd为指向类score的对象的指针 s[0].setscore(10,11); s[1].setscore(20,21); pd=s; //将对象s的起始地址赋给pd; pd->printscore(); pd++; pd->printscore(); return 0; }运行结果:
10 11 20 21