Форум программистов, компьютерный форум CyberForum.ru

Конфликт конструкторов. - C++

Восстановить пароль Регистрация
 
romex
 Аватар для romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
05.04.2012, 09:41     Конфликт конструкторов. #1
Здравствуйте!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
struct DateTime : tm
{
     DateTime(int year_ = 1970,
              int month_ = 1,
              int day_ = 1,
              int hours_ = 0,
              int minutes_ = 0,
              int seconds_ = 0,
              int milliseconds_ = 0)
     {
       ...
     }
     DateTime(time_t time)
     {
        ...
     }
}
При вызове конструктора с одним параметром компилятор не знает какой из конструкторов использовать.
Как исправить поизящней?
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 09:41     Конфликт конструкторов.
Посмотрите здесь:

Наследование конструкторов? C++
Массив из конструкторов C++
C++ Наследование конструкторов
C++ Наследование конструкторов
Вызов конструкторов C++
вызовы конструкторов C++
Наследование конструкторов C++
C++ Наследование конструкторов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
05.04.2012, 09:57     Конфликт конструкторов. #2
romex, Какой компилятор? У меня отрабатывает все корректно. Конструктор с time_t вызывается если передать ему time_t или long. А как сделать корректнее... Три конструктор будет самой корректной идеей. Конструктор по умолчанию, конструктор с параметрами, конструктор с time_t.
romex
 Аватар для romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
05.04.2012, 10:17  [ТС]     Конфликт конструкторов. #3
Цитата Сообщение от ForEveR Посмотреть сообщение
romex, Какой компилятор? У меня отрабатывает все корректно.
Visual studio 2010. На g++, к примеру, чтобы получить ту же проблему нужно указать параметр -pedantic.

Спасибо, три конструктора действительно простое и корректное решение. Меня печалит, что это не оказалось для меня само собой разумеющимся решением.
Yandex
Объявления
05.04.2012, 10:17     Конфликт конструкторов.
Ответ Создать тему
Опции темы

Текущее время: 14:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru