对象数组是指每个数组元素都是对象的数组,定义一个一维数组
类名 数组名[下标表达式];
注:建立数组时,同样要调用构造函数,有几个数组元素就要调用几次构造函数和析构函数
对象数组访问时只能访问单个数组元素,即单个对象
数组名[下标].成员名
#include <iostream>
using namespace std;
class Complex{
private:
int x;
public:
Complex(int n):x(n)
{
}
int getx()
{
return x;
}
};
int main()
{
Complex op[4]={11,22,33,44};
for(int i=0;i<4;i++)
{
cout<<op[i].getx()<<endl;
}
return 0;
}
如果构造函数只有一个参数可以按照上面的来为数组赋值。
Complex op[4]={11,22,33,44};
如果有多个参数,则如下写赋值语句
Complex op[4]={
Complex(11,12),
Complex(22,23),
Complex(33,34),
Complex(44,45)
对象指针
对象指针是用来存放对象地址的变量
语法形式:
类名 *对象指针名;
指针可以用来访问单个对象成员,这个时候要用“->”操作符;
指针也可以用来访问对象数组
#include <iostream>
using namespace std;
class Complex{
private:
int x;
int y;
public:
Complex(int n,int m)
{
x=n;
y=m;
}
~Complex()
{
}
int getx()
{
return x;
}
int gety()
{
return y;
}
};
int main()
{
Complex ob(99,99);
Complex *p;
p=&ob;
cout<<p->getx()<<" "<<p->gety()<<endl;
Complex op[4]={
Complex(11,12),
Complex(22,23),
Complex(33,34),
Complex(44,45)
};
Complex *q;
q=op;
for(int i=0;i<4;i++)
{
cout<<q->getx()<<" "<<q->gety()<<endl;
q++;
}
return 0;
}
输出结果