Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Конструкторы
Для инициализации объектов класса используются специальные функции-члены - конструкторы. Имя конструктора совпадает с именем класса. Конструктор не возвращает никакого значения, даже уо1с1. Еа класс имеет конструктор, то он вызывается автоматически при создан! объекта класса, поэтому все объекты класса будут проинициализированы.
class Date{
int d,m,y;
public:
Date(int =0,int =0,int =0); //конструктор
void Add_Year(int n);
void Add_Day();
void Print();
};
#include<iostream.h>
void Date::Print()
{
cout<<d<<'.'<<m<<'.'<<y;
}
int leap(int year)
{
return (year % 4==0 && year % 100!=0) || year%400==0;
}
void Date::Add_Year(int n)
{
if(m==2 && d==29 && leap(y+n)!=1){
m=3;
d=1;
}
y+=n;
}
char daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
void Date::Add_Day()
{
if(d<daytab[leap(y)][m]) //если не последний день месяца
d++; //увеличить номер дня
else if(m<12){ //…если последний день месяца, но не года
d=1;m++; //первое число следующего месяца
}
else{ //если последний день года
d=1;m=1;y++; //1января следующего года
}
}
//реализация конструктора
#include<dos.h>
Date::Date(int dd,int mm,int yy) //значения аргументов по умолчанию
{ //второй раз не указываются
date sysd;
getdate(&sysd);
d=dd?dd:sysd.da_day;
m=mm?mm:sysd.da_mon;
y=yy?yy:sysd.da_year;
}
#include<conio.h>
int main()
{
Date Studies(1,9,2007);
cout<<"€исходная дата: ";
Studies.Print();cout<<endl;
Studies.Add_Year(5);
cout<<"через 5 лет: ";
Studies.Print();cout<<endl;
Date Today; //использование конструктора по умолчанию
cout<<"сегодня: ";
Today.Print();cout<<endl;
Today.Add_Day();
cout<<"завтра : ";
Today.Print();cout<<endl;
Date D(29,2,2000);
cout<<"интересная дата: ";
D.Print();cout<<endl;
D.Add_Day();
cout<<"следующий день: ";
D.Print();cout<<endl;
getch();
return 0;
}