Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Несколько конструкторов у класса (число прочтений - 904 )
es3000
God Member
*****
Отсутствует



Сообщений: 534
Зарегистрирован: 10. Июля 2006
Несколько конструкторов у класса
06. Февраля 2019 :: 18:38
Печать  
Здравствуйте!

Есть простой класс.
Нужно у этого класса сделать несколько конструкторов, с разным количеством параметров.
Не нашел этого в документации.

Например, нужны:
1-й - обычный конструктор без параметров
2-й - конструктор с параметром "Строка".

Как это сделать?
И как создавать объекты с помощью разных конструкторов?
  
Наверх
ICQ  
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Несколько конструкторов у класса
Ответ #1 - 07. Февраля 2019 :: 06:36
Печать  
Код
Выбрать все
Фабрика = СоздатьОбъект("ФабрикаОбъектов");
ОбъектКОП = Фабрика.Новый("КлассСКонструкторами");
ОбъектКОП = Фабрика.Новый("КлассСКонструкторами", "КонструкторБезПараметров");
ОбъектКОП = Фабрика.Новый("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);
 



http://www.1cpp.ru/docum/icpp/html/extobjs.html#new
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 534
Зарегистрирован: 10. Июля 2006
Re: Несколько конструкторов у класса
Ответ #2 - 07. Февраля 2019 :: 09:25
Печать  
Понял, спасибо.

Только единственное неудобство этого кода...
Мне его вызывать надо во многих местах.
Много повторяющегося кода получается.

Можно какой-нибудь макрос на 1С++ сделать?
Чтобы завернуть в него вызов "Фабрики"?

Чтобы, например, вместо:
Код (C++)
Выбрать все
Фабрика = СоздатьОбъект("ФабрикаОбъектов");
ОбъектКОП = Фабрика.Новый("КлассСКонструкторами", "КонструкторCКоличествомПараметров2", 1, 2);
 



везде в тексте модуля написать:
Код (C++)
Выбрать все
МАКРО_СОЗДАТЬ_ОБЪЕКТ("КлассСКонструкторами", 1, 2);
 

  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 534
Зарегистрирован: 10. Июля 2006
Re: Несколько конструкторов у класса
Ответ #3 - 13. Февраля 2019 :: 08:36
Печать  
Получается "КонструкторCКоличествомПараметров2" - это просто обычный метод класса, который вызывается "Фабрикой" сразу после создания объекта?

  
Наверх
ICQ  
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Несколько конструкторов у класса
Ответ #4 - 13. Февраля 2019 :: 12:32
Печать  
es3000 писал(а) 13. Февраля 2019 :: 08:36:
Получается "КонструкторCКоличествомПараметров2" - это просто обычный метод класса, который вызывается "Фабрикой" сразу после создания объекта?

Да, обычный приватный метод (без модификатора "Экспорт"). Но, по идее, фабрика не просто его вызывает, а вызывает вместо привычного метода Конструктор().
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать