Инициализация переменных конструктором

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Dragon
Сообщения: 99
Зарегистрирован: 01 окт 2009, 11:21
Откуда: Odessa
Контактная информация:

Как инициализировать конструктором значечения аргументов при след. условиях.
- Есть класс Month, который состоит из 3 переменных типа char, содержащих в себе первые 3 буквы месяца.
- Есть класс Year, который состоит из 2 переменных: int day - хранит в себе значение дня и Month mon (хранящая в себе значение месяца).

Скажем есть такая программа:

Код: Выделить всё

int main()
{
   Year today;
   today.output();

   return 0;
}
Нужно инициализировать значение этой переменной конструктором.

Код: Выделить всё

//Вариант 1
DayOfYear: :D ayOfYear(Month constr_mon, int constr_day):mon(constr_mon), day(constr_day)
{
}
//Переменная mon ожидает получить 3 char значения, как следствие - она их не получит т.к. конструктор не ожидает принять 3 значения char

//Вариант 2
DayOfYear: :D ayOfYear(char mon_let1, char mon_let2, char mon_let3, int constr_day):day(constr_day)
{
   Month temp;
   //неправильно
   mon = temp.set_month(mon_let1, mon_let2, mon_let3);
   //правильно
   temp.set_month(mon_let1, mon_let2, mon_let3);
   mon = temp;
}

void Month::set_month(char month1, char month2, char month3)
{
    mon1 = month1;
    mon2 = month2;
    mon3 = month3;
}
=======
Уважаемые модераторы, тему можно удалить.
Ответить