注册 登录
编程论坛 C++教室

某些东西的名字和写法

cclearner 发布于 2007-07-05 16:18, 515 次点击

#include<iostream>
using namespace std;
class Point
{ public:
Point()
{ X=Y=0; cout<<"Default Constructor called."<<endl; }
Point(int xx,int yy)
{ X=xx; Y=yy; cout<< "Constructor called."<<endl; }
~Point()
{ cout<<"Destructor called."<<endl; }
int GetX() {return X;}
int GetY() {return Y;}
void Move(int x,int y)
{ X=x; Y=y; }
private:
int X,Y;
};
class ArrayOfPoints
{
public:
ArrayOfPoints(int n)
{ numberOfPoints=n; points=new Point[n]; }
~ArrayOfPoints()
{ cout<<"Deleting..."<<endl;
numberOfPoints=0; delete[] points;
}
Point& Element(int n)
{ return points[n]; }
private:
Point *points;
int numberOfPoints;
};

int main()
{
int number;
cout<<"Please enter the number of points:";
cin>>number;
ArrayOfPoints points(number);
points.Element(0).Move(5,10);
points.Element(1).Move(15,20);

}
红色这一句&是什么意思?
Element
是什么东西?
蓝色这一句好几个.(点)
这又怎么个讲法?我不明白这是怎么个表示法?

5 回复
#2
aipb20072007-07-05 16:41
Point& Element(int n)
{ return points[n]; }
结合实现可知,element是返回ArrayOfPoints类中具体的Point。
相当与int a[5]; a[i]返回数组中i索引的元素。

points.Element(0).Move(5,10);

从坐向右看
points.Element(0)返回是个Point类型,再这个Point.Move(5,10)调用Point类的成员Move。
#3
cclearner2007-07-05 16:47
我的意思是说element 本身是个什么数据类型
这里的&到底声明了一个什么东西?
#4
aipb20072007-07-05 16:49
Element是函数名,不是类型。
Point& 表示引用返回。
#5
cclearner2007-07-05 16:57
*。*!!!!
引用返回。。。。。。。
我往下学一学吧。
还不知道这是啥。。。。。。。
真汗。。。。。!
#6
cclearner2007-07-05 17:40
懂了,谢版主!
1