Homework
Home 1
题目
为Date类实现如下成员:
- 构造器,可以初始化年、月、日。
- 大于、小于、等于(> 、< 、==)操作符重载,进行日期比较。
- print() 打印出类似 2015-10-1 这样的格式。
然后创建两个全局函数:
- 第1个函数 CreatePoints生成10个随机的Date,并以数组形式返回;
- 第2个函数 Sort 对第1个函数CreatePoints生成的结果,将其按照从小到大进行排序。
最后在main函数中调用CreatePoints,并调用print将结果打印出来。然后调用Sort函数对前面结果处理后,并再次调用print将结果打印出来。
思路
1. 基本运行框架
- 基本代码
#include<iostream>
usingnamespace std;
int main()
{
cout<<"Hellow World!\n";
return0;
}
- 编译指令
g++-o homework1 homework1.cpp
2. 构造Date类
- 程序
#include<iostream>
usingnamespace std;
classDate
{
public:
Date()
{
year=2016;
month=3;
day=1;
}
double get_year()const{return year;}
double get_month()const{return month;}
double get_day()const{return day;}
private:
int year;
int month;
int day;
};
int main()
{
Date mData;
cout<<"Hellow!\n";
cout<<mData.get_year()<<"\n";
return0;
}
- 主要考虑,类具有初始化能力同时类的参数应该是private
3. 构造输出函数
#include<iostream>
usingnamespace std;
classDate
{
public:
Date()
{
year=2016;
month=3;
day=1;
}
double get_year()const{return year;}
double get_month()const{return month;}
double get_day()const{return day;}
private:
int year;
int month;
int day;
};
voidprint(constDate& d)
{
cout<<d.get_year()<<"-"<<d.get_month()<<"-"<<d.get_day()<<"\n";
}
int main()
{
Date mData;
print(mData);
return0;
}
- print函数应当使用by refernce传递数据,同时应当避免数据被更改,因此使用
cons Reference Parameters
. - 这种形式一般为
const typeName& variableName
,因此此处设计为void print(const Date& d)
4. 比较
-
操作符重载(友元方法和类函数方法)
http://www.cnblogs.com/BeyondAnyTime/archive/2012/09/01/2666570.html - 为何比较操作符选择使用友元
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=523- 比较时,如果是成员函数,则一个是pointer,一个是reference
http://c.biancheng.net/cpp/biancheng/view/217.html
- 比较时,如果是成员函数,则一个是pointer,一个是reference
e-mail: kongww.nudt [AT] gmail.com
WeChat/QQ: 40804097