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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2013, 09:06   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию Перегрузка и конструктор

определение числа дней, прошедших между двумя датами (операция %);

Написал программу и столкнулся с некоторой трудностью(не могу перегрузить этот кусок из задания). В член-функции condition посчитал дни сначала года обеих дат(rez1 и rez) и грубо говоря в перегрузке нужно просто выполнить операцию: c=rez1%rez.
Но вместе с конструктором у меня не получается выполнить перегрузку...


Код:
#include <iostream>
using namespace std;
class data {
int chislo;
int mesyac;
int god;
int chislo1;
int mesyac1;
int god1;
public:
	void printf();
	void show();
	void condition();

    data(int k) {
		cout<<"---DATA 1---"<<endl;
		cout<<"vvedite chislo"<<endl;
		cin>>chislo;
		cout<<"vvedite mesyac"<<endl;
		cin>>mesyac;
		cout<<"vvedite god"<<endl;
		cin>>god;

        cout<<"---DATA 2---"<<endl;
		cout<<"vvedite chislo"<<endl;
		cin>>chislo1;
		cout<<"vvedite mesyac"<<endl;
		cin>>mesyac1;
		cout<<"vvedite god"<<endl;
		cin>>god1;
	}
 };

	void data::show(void) {
		cout<<chislo<<"."<<mesyac<<"."<<god<<endl;
	cout<<chislo1<<"."<<mesyac1<<"."<<god1<<endl;}

	void data::condition(void) { int rez,rez1,n,gods; 
	int i=0;
    int sm=0;
	int mm[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if (god1%4==0)
	{
		mm[1] = 29;
		god1 = god1 * 366;
	}
	else god1 = god1 * 365; //visokosnii god

	if (god%4==0)
	{
		mm[1] = 29;
		god = god * 366;
	}
	else god = god * 365;//visokosnii god

while (i<mesyac-1)
{sm=sm+mm[i];
i=i+1;}
		rez=chislo+sm;

	if (mesyac==1) 
		rez=chislo;
	cout<<"kol-vo dnei v 1 date"<<rez<<endl; //vichisleniya dnei odnogo goda

while (i<mesyac1-1)
{sm=sm+mm[i];
i=i+1;}
		rez1=chislo1+sm;

	if (mesyac1==1) 
		rez1=chislo1;
	cout<<"kol-vo dnei vo 2 date"<<rez1<<endl; //vichisleniya dnei drugogo goda
//gods=god1-god;
//	cout<<"kolichestvo dnei pri vichitanii godov"<<gods<<endl;	
	
//	n=rez1-rez+gods;

//cout<<n;
	}
	int main () {
		data ds(12);
		ds.show();
       ds.condition();
		system("pause");
		return 0; }
Alexandr- вне форума Ответить с цитированием
Старый 09.11.2013, 00:07   #2
studen
Пользователь
 
Регистрация: 21.05.2012
Сообщений: 88
По умолчанию


Конструктор один я вижу, есть. Но тебе надо объявить второй конструктор с другими параметрами( конструкторы могут отличаться количеством или типом параметров ).
Допустим, ты объявил:
----data();
----data( int day, int mon, int yer );
В коде ты можешь вызвать конструктор либо без параметров, либо с тремя.
Очень важно:
----Используй отступы.
studen вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор Freewill Общие вопросы C/C++ 1 18.02.2012 21:51
Конструктор коприровщик и перегрузка функций wwe2012 Общие вопросы C/C++ 2 24.03.2011 08:49
Конструктор копирования, перегрузка операций xPAL Общие вопросы C/C++ 1 15.10.2010 20:16
С++ (конструктор, деструктор, копирующий конструктор) Jane-sad Помощь студентам 2 01.10.2010 10:01
Конструктор, наследование, перегрузка операций Lioness Помощь студентам 18 02.06.2008 20:44