幼儿园小班的小朋友开始学画画了,小明喜欢在白纸上画点点,请你帮他统计一下点的个数。请定义一个Point类,内有数据成员x,y表示点的坐标,还有一个静态数据成员count用于统计点的个数。并有若干成员函数,如构造函数、显示点的个数的函数showCount()等等。
裁判测试程序样例:
#include<iostream>
using namespace std;
/*你的程序将被嵌入在这里*/
int main()
{
int x,y;
cin>>x>>y;
Point::showCount();
Point a(x,y);
cout<<"Point A: "<<a.getX()<<","<<a.getY()<<endl;
Point::showCount();
Point b(a);
cout<<"Point B: "<<b.getX()<<","<<b.getY()<<endl;
Point::showCount();
Point c;
cout<<"Point C: "<<c.getX()<<","<<c.getY()<<endl;
Point::showCount();
Point d(x);
cout<<"Point D: "<<d.getX()<<","<<d.getY()<<endl;
Point::showCount();
return 0;
}
输入样例:
4 5
输出样例:
0
Point A: 4,5
1
Point B: 4,5
2
Point C: 0,0
3
Point D: 4,0
4
class Point
{
private:
int m_x;
int m_y ;
public:
static int count ;
static int showCount()
{
cout << count << endl;;
return count;
}
int getX()
{
return m_x;
}
int getY()
{
return m_y;
}
Point(int x , int y)
{
m_x = x;
m_y = y;
count++;
}
Point(Point &a)
{
m_x = a.getX();
m_y = a.getY();
count++;
}
Point()
{
m_x = 0;
m_y = 0;
count++;
}
Point(int x)
{
m_x = x;
m_y = 0;
count++;
}
};
int Point::count = 0;
此题主要 考察构造函数的使用
构造函数的语法如下:
类名()
{
*******
*******
}
如此题中的类名为Point
因此它的构造函数可以写为 Point(){}
构造函数有以下特征:
1.构造函数没有返回值也不需要写void。
2.构造函数名称与类名相同。
3.构造函数可以有参数,也可以没有。因此构造函数可以发生重载
4.程序在调用时会自动调用构造函数,无须手动调用,而且只会调用一次。