#include<iostream>
using namespace std;
class coordinate {
public:
coordinate()
{
times = 2;
cout << "coordinate construction1 called" << endl;
}
coordinate(int times1)
{
times = times1;
cout << "coordinate construction2 called" << endl;
}
~coordinate()
{
cout << "coordinate destruction called" << endl;
}
void inputcoord()
{
for (int i = 0; i < times; i++)
{
cout << "please input x:" << endl;
cin >> coord[i][1];
cout << "plaease input y:" << endl;
cin >> coord[i][2];
}
}
void showcoord()
{
cout << "the coord is:" << endl;
for (int i = 0; i < times; i++)
{
cout << "(" << coord[i][1] << ", " << coord[i][2] << ")" << endl;
}
}
void showavgcoord()
{
float avgx = 0;
float avgy = 0;
for (int i = 0; i < times; i++)
{
avgx = avgx + coord[i][1];
avgy = avgy + coord[i][2];
}
avgx = avgx / times;
avgy = avgy / times;
cout << "the avg coord is:" << endl;
cout << "(" << avgx << "," << avgy << ")" << endl;
}
private:
float coord[100][100];
int times;
};
int main()
{
coordinate x;
x.inputcoord();
x.showcoord();
x.showavgcoord();
coordinate y(5);
y.inputcoord();
y.showcoord();
y.showavgcoord();
return 0;
}
?????????运行结果如图所示,刚开始接触类和对象,对于程序代码掌握并不是特别熟练,也不太能理解程序含义,但结合运行结果可以很直观地感受到程序的运行过程及含义,如果未定义输入数组数目,coordinate函数将数目默认为两个;而定义数组数目后,就是由coordinate(int times)函数起作用并继续运行程序,并且实际理解了构造函数和析构函数。初步接触类与对象,感觉到自己还有很大的不足,还需要在接下来的学习中进一步练习。
以下是通过实验及教材和网络进行的一些总结:
????????类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法,类中的数据和方法称为类的成员,函数在一个类中被称为类的成员。类定义是以关键字?class?开头,后跟类的名称。类的主体是包含在一对花括号中,类定义后必须跟着一个分号或一个声明列表。
????????类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也是一种特殊的函数,在删除所创建的对象时调用.在使用构造函数和析构函数时,需要特别注意对它们的调用时间和调用顺序。在一般情况下,调用析构函数的次序正好与调用构造函数的次序相反:最先被调用的构造函数,其对应的(同一对象中的)析构函数最后被调用,而最后被调用的构造函数,其对应的析构函数最先被调用。
|