@Igorello74

Что делает оператор «:» в этом случае в c++?

Добрый день! Недавно наткнулся на такой код для создания класса кнопки для Arduino:
Код
//...
class Button
{
  public: Button (uint8_t pin, bool pullup = false, uint16_t debounceDelay = 50)
    : _pin(pin), _state(LOW), _lastState(LOW),
      _lastMillis(0), _debounceDelay(debounceDelay),
      _lastDebounceTime(0)
  {
    if (pullup == true)
    {
      pinMode(_pin, INPUT_PULLUP);
    }
    else
    {
      pinMode(_pin, INPUT);
    }
}
//...

Меня удивило, как здесь используется оператор : (5 строка) и вообще вся конструкция после него. Если кто-нибудь знает, пожалуйста, скажите, что это, а лучше просто дайте ссылку на справочный ресурс, буду очень благодарен.
Заранее спасибо!
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
Это называется секцией инициализации. В этой секции можно самостоятельно инициализировать поля создаваемого объекта еще до передачи управления в тело конструктора.

Еще начиная с C++11 в секции инициализации можно указывать делегирование конструкторов. Выбранный конструктор будет так же выполнен до входа в тело текущего конструктора.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы