Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2011, 20:42   #1
fokinamasha
Новичок
Джуниор
 
Регистрация: 31.03.2011
Сообщений: 2
По умолчанию класс Date

ПРивет всем! задали лабу.. вот задание -

// 1. Разобраться в программе, дописать методы класса Date
// 2. Написать класс Time (производный от класса Date) для хранения (день, месяц, год, часы, минуты, секунды, миллисекунды) так, чтобы программа заработала при открытии комментариев в функции main(...)
PHP код:
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
class 
Date {
public:
    
int daymonthyear;
    
Date()
{
           
cout << "Date()\n";
          
SYSTEMTIME st;
          
GetSystemTime(&st);
          
day st.wDay;
          
month st.wMonth;
          
year st.wYear;
       }
Date(Date &d)
       {
           

       
}
       
Date(int dint mint y)
       {
           

        
}
       
Date &operator =(Date &d)
       {
           

       
}
       
bool visokostniy();
};
ostream &operator <<(ostream &outDate d)
{
    

}
bool Date::visokostniy()
{

}
void PrintBytes(void *pint size)
{
    
unsigned char *p1 = (unsigned char *)p;
       for(
int i=0;i<size;i++)
           
cout << (int)p1[i] << " ";
       
cout << endl;
}
int main()
{
    
cout << "Creating Date...\n";
    
Date obj1(112008);
//    cout << "Creating Time...\n";
//    Time obj2;
    
cout << "obj1: " << obj1 << " " << sizeof(obj1) << endl;
//      cout << "obj2: " << obj2 << " " << sizeof(obj2) << endl;
    
PrintBytes(&obj1sizeof(obj1));
//    PrintBytes(&obj2, sizeof(obj2));
    
_getch();
    return 
0;



я, в общем, расписала все, вот что у меня получилось:

PHP код:
class Date
{
public:
        
int daymonthyear;
        
Date()
        {
                
cout << "Date()\n";
                
SYSTEMTIME st;
                
GetSystemTime(&st); //требует чтобы st была типа SYSTEMTIME
                
day st.wDay;
                
month st.wMonth;
                
year st.wYear;
        }
        
Date(Date &d)  // значения берем из другого класса
        
{
                
day=d.day;
                
month=d.month;
                
year=d.year;
        }
        
Date(int dint mint y// значения сами задаем
        
{
                
day=d;
                
month=m;
                
year=y;
        }
        
Date &operator =(Date &d)
        {
                
day=d.day;
                
month=d.month;
                
year=d.year;
                return *
this
        }
        
bool visokostniy();
};
class 
Time: public Date
{
public:
        
int hms;
        
Time()
        {
                
cout << "Time()\n";
                
SYSTEMTIME st;
                
GetSystemTime(&st);
                
st.wHour;
                
st.wMinute;
                
st.wSecond;
        }
        
Time(Time &d)
        {
                
h=d.h;
                
m=d.m;
                
s=d.s;
        }
        
Time(int hoint miint se)
        {
                
h=ho;
                
m=mi;
                
s=se;
        }
        
Time &operator =(Time &d)
        {
                
h=d.h;
                
m=d.m;
                
s=d.s;
                return *
this;
        }
};
ostream &operator <<(ostream &outDate d)
{
        return 
out << d.day <<'.'<< d.month <<'.'<< d.year;
}
ostream &operator <<(ostream &outTime d)
{
        return 
out << d.<<':'<< d.<<':'<< d.s;
}
bool Date::visokostniy()
{
        if ( ( (
year%4==0) && (year%100!=0) ) || ( (year%4==0) && (year%100==0) && (year%400==0) ) )
                return 
true;
        else return 
false;

}
void PrintBytes(void *pint size)
{
    
unsigned char *p1 = (unsigned char *)p;
       for(
int i=0;i<size;i++)
           
cout << (int)p1[i] << " ";
       
cout << endl;
}
int main()
{
    
cout << "Creating Date...\n";
        
Date obj1;
        
Date obj3(1,1,2008);
        
cout << "Creating Time...\n";
     
Time obj2;
           
cout << "obj1: " << obj1 << " size: " << sizeof(obj1) << endl;
      
cout << "obj2: " << obj2 << " " << sizeof(obj2) << endl;
    
PrintBytes(&obj1sizeof(obj1));
    
PrintBytes(&obj2sizeof(obj2));
        
obj1=obj3;

        
cout << obj1.visokostniy() << endl;

    
getchar();
    return 
0;





у меня такие вопросы - Правильно ли я объявила класс Time как наследник класса Date? и нужно ли в методах класса Тайм рассписывать также методы класса Date, или он прямо таки унаследует и все окей будет?

Спасибо заранее!

Последний раз редактировалось fokinamasha; 31.03.2011 в 20:47.
fokinamasha вне форума Ответить с цитированием
Старый 31.03.2011, 21:16   #2
blacktener
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 78
По умолчанию ну я так думаю

ну я у тебя виртуальных функций не увидел а значит класс тайм должен унаследовать все поля и методы класса дата. насчет правильности ниче не могу сказать так как не вникал в это.
blacktener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
Функция Date warshadow Microsoft Office Access 5 04.11.2009 01:57
Date 1.0.4 Bigtyoma Софт 4 14.04.2009 10:02
Программка на Delphi показывающая сколько дней осталось до какого-либо события Bigtyoma Общие вопросы Delphi 3 27.03.2009 19:15
Запись в БД в формате Date Cantana Помощь студентам 16 24.01.2008 11:30