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