Top.Mail.Ru
Ответы

Интересное задание

Вот такое задание на С++

Создайте класс Date, который будет содержать информацию о дате (день, месяц, год) . С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами) , а также операцию увеличения даты на определенное количество дней.

ПОМОГИТЕ исправить ошибки в коде самому не получается а помочь не кому :( . Если кто может подскажите как это исправить заранее спасибо !

#include <iostream>

#include<conio.h>

using namespace std;

classDate

{

private:

char* day;// день

int mons; // месяц

int ear; //год

public:



void Day();

void Mons();

void Ear();

void Print();

/////////////

Date::Date()

{

day = 0;

mons = 0;

ear = 0;

}

/////////////////////

Date::Date( char* d,int m,int e)

{

int l = strlen(d) + 1;

day = new char[l];

if (day == 0)

{

exit(1);

}

strcpy_s(day, l, d);

}

////////////////////

void Date::Print()

{

cout << day << "\n";

cout << mons << "\n";

cout << ear << "\n";

}

///////////////////////////



Date::Date()

{

day = 0;

mons = 0;

ear = 0;

}

//////////////////

void Date::Day()

{

char buffer[20];

cout << "Enter day-> ";

cin.getline(buffer, 20);

int l = strlen(buffer) + 1;

day = new char[l];

if (day == 0)

{

exit(1);

}

strcpy_s(day, l, buffer);

}

/////////////////////////



/////////////////////////////////

Date operator+(const Date &N)

{

Date temp;

temp.day = day + N.day;

return temp;

{

Date temp;

temp.mons = mons + N.mons;

return temp;

}



{

Date temp;

temp.ear = ear + N.ear;

return temp;

}

}



/////////////////////////////

Date operator-(const Date &N)

{

Date temp;

temp.day = day - N.day; //(Ошибка №1)Подчеркивает "N" и пишет (выражение должно относится к целочисленному типу или типу перечисления без области видимости )

return temp;

{

Date temp;

temp.mons = mons - N.mons;

return temp;

}

{

Date temp;

temp.mons = mons - N.mons;

return temp;

}

}

/////////////////////////////

Date operator-(const Date &N)

{

Date temp;

temp.day = day - N.day; //(Ошибка №2)Подчеркивает знак "=" и пишет (значение типа "int" нельзя присвоить сущности типа "char*")

return temp;

{

Date temp;

temp.mons = mons - N.mons;

return temp;

}

{

Date temp;

temp.mons = mons - N.mons;

return temp;

}

}

По дате
По рейтингу
Аватар пользователя
Новичок
10лет

У вас day в classDate имеет тип указателя на char, и что вы от нас хотите?
Измените ему тип на int и всё у вас получится. (И про параметры в конструкторах не забудьте)

Аватар пользователя
Профи
10лет

этот вопрос уже был, а ты, кстати, улучшил немного.

Аватар пользователя
Профи
10лет

у тебя день чар как ты его собрался отнимать какой- то бред