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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 01:05   #1
Alexander1205
Пользователь
 
Аватар для Alexander1205
 
Регистрация: 22.01.2011
Сообщений: 78
По умолчанию класс "Дата"

Доброго времени суток,многоуважаемые форумчане! Делали лабу, по перегрузке операторов в классе, но в итоге выдает какой-то мусор. ума не приложу, что нужно сделать. Короче, класс должен иметь такие возможности:
-хранение даты;
-ввод даты;
-вывод даты;
-вывод только дня, месяца или года;
-увеличение даты на один день.

PHP код:
#include <iostream>
using namespace std;
 
class 
Date
{
public:
        
int day;
        
int month;
        
int year;
        
int date[3];
 
        
Date()
        {
                
                
date[0] = day;
                
date[1] = month;
                
date[2] = year;
                
        }
         
void operator=(int mas[3])//ввод даты
         
{
                 
date[0]=mas[0];
                 
date[1]=mas[1];
                 
date[2]=mas[2];
         }
          
operator int()
          {
                   return 
date[0]*10000+date[1]*100+date[2];
          }
          
int operator[](int index)
         {
                 if(
index<0||index>2)
                         return 
0;
                 return 
date [index];
         }
          
int operator++(int d)
        {
                
int tmp date[0];
                for(
int i 0;i<32;i++)
                
date[0]++;
                return 
tmp;
        }
};
 
void main()
{
        
Date d
         
        
int mas[]={12,5,71};
        
mas;
         
cout<<d<<"\n"
         for(
int i=0;i<32;i++)
                 
cout<<d.day<<" "<<d.month<<" "<<d.year<<" "<<"\n";     
         
cout<<d++<<"\n";
        

Alexander1205 вне форума Ответить с цитированием
Старый 03.06.2011, 08:48   #2
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
но в итоге выдает какой-то мусор
Потому что данные ты вводишь в массив date[], а выводишь поля day, month и year.

Цитата:
Код:
cout<<d<<"\n";
А оператор вывода у тебя вообще не перегружен.
Да и класс как-то странно образован. Зачем массив в нем?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 03.06.2011, 10:44   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Для начала лучше бы что-то такое:
Код:
class Date
{
public:
Date(int dd = 1, int mm = 1, int yy = 1970);
~Date() {}
Date operator++(int);   //Постфиксный инкремент
Date& operator++();   //Префиксный инкремент
friend std::ostream& operator<<(std::ostream& s, const Date& d);
//...
private:
int day, month, year;   //А еще лучше - сделать emun для месяца
};

Date::Date(int dd, int mm, int yy):
 day(dd), month(mm), year(yy)
 {
 }
std::ostream& operator<<(std::ostream& s, const Date& d)
 {
 s << d.day << "." << d.month << "." << d.year;
 return s;
 }
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 03.06.2011, 12:14   #4
Alexander1205
Пользователь
 
Аватар для Alexander1205
 
Регистрация: 22.01.2011
Сообщений: 78
По умолчанию

Про перегрузку операторов ввода-вывода еще не знаю, поэтому сложно читать код, а попроще можно чего-нить? Так, чтобы было понятно новичку?
Alexander1205 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дата введённая "ручками" и дата полученная по ссылке kzld Microsoft Office Excel 0 06.05.2011 14:45
Класс "Дата" С++ Straiker Помощь студентам 0 16.05.2010 15:47
Как передать данные типа "дата" из формы в таблицу Ярослав Блошенко Microsoft Office Access 1 26.02.2010 18:22
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04