类对日期date的封装
主函数
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "Date.h"
using namespace Space;
int _tmain(int argc, _TCHAR* argv[])
{
Date d(2008,8,8);
if (d.isLeapYear())
cout << " is leap Year" << endl;
else
cout << " is not leap Year" << endl;
Date d2(d);//都是栈空间数据 用系统默认的拷贝构造器
d2.print();
return 0;
}
Date.h
#pragma once//与#ifndef DATE_H #define DATE_H #endif 的作用相同
namespace Space
{
class Date
{
public:
Date(int y=0, int m=0, int d=0);
//构造器中都是栈上空间 使用系统默认的析构器就好
void print(); //成员函数
int getYear();
bool isLeapYear();
private:
int year; //数据成员
int month;
int day;
};
}
Date.cpp
#include "Date.h"
#include <iostream>
using namespace std;
namespace Space
{
//Date::Date(int y, int m, int d)
//{
// year = y;
// month = m;
// day = d;
//}
//构造器参数列表 效率很高 因为在没有调用函数之前
//也就是没有进入{}之前就 完成了赋值
Date::Date(int y, int m, int d)
:year(y), month(m), day(d)
{
}
void Date::print()
{
cout << year << "/" << month << "/" << day << endl;
}
//year为私有成员 如果想在类外部得到 需要添加方法
int Date::getYear()
{
return year;
}
bool Date::isLeapYear()
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return true;
else
return false;
}
}