Size: a a a

2021 February 17

R

Robert B. Garza in pro.cxx
Подскажите, а как передавать определенный кварг инициализатору, а не все сразу?

Конструктор - TrafficLight(int red_pin = 16, int yellow_pin = 5, int green_pin = 4, int speaker_pin = 0, int sound=0)

Задача - передать только один кварг : TrafficLight traffic_light = TrafficLight(speaker_pin=7);
источник

ПК

Побитый Кирпич... in pro.cxx
Robert B. Garza
Подскажите, а как передавать определенный кварг инициализатору, а не все сразу?

Конструктор - TrafficLight(int red_pin = 16, int yellow_pin = 5, int green_pin = 4, int speaker_pin = 0, int sound=0)

Задача - передать только один кварг : TrafficLight traffic_light = TrafficLight(speaker_pin=7);
Кого передать?
источник

R

Robert B. Garza in pro.cxx
Именованный аргумент
источник

ПК

Побитый Кирпич... in pro.cxx
Robert B. Garza
Именованный аргумент
в С++ такого нету
источник

R

Robert B. Garza in pro.cxx
Т.е я не могу передать инициализатору по имени значение?
источник

R

Robert B. Garza in pro.cxx
И придется передавать сразу весь инициализатор?
источник

ПК

Побитый Кирпич... in pro.cxx
Robert B. Garza
И придется передавать сразу весь инициализатор?
Ты можешь включить С++20 и юзать структуру вместо набора параметров + designated initializer
источник

R

Robert B. Garza in pro.cxx
По типу : TrafficLight traffic_light = TrafficLight(1,2,3,4,5);
источник

IZ

Ilia Zviagin in pro.cxx
Robert B. Garza
Т.е я не могу передать инициализатору по имени значение?
Инициализатору можешь. Но параметр не именованый
источник

ПК

Побитый Кирпич... in pro.cxx
Хотя не уверен что они ещё везде поддержаны
источник

R

Robert B. Garza in pro.cxx
Ilia Zviagin
Инициализатору можешь. Но параметр не именованый
А как мне передать тогда к примеру 5 аргумент?
источник

R

Robert B. Garza in pro.cxx
Пропустив первые 4
источник

w

wonder in pro.cxx
Robert B. Garza
Т.е я не могу передать инициализатору по имени значение?
Может поможет делегирующий конструктор, почитайте про него
источник

IZ

Ilia Zviagin in pro.cxx
Robert B. Garza
А как мне передать тогда к примеру 5 аргумент?
НИКАК
источник

w

wonder in pro.cxx
Robert B. Garza
А как мне передать тогда к примеру 5 аргумент?
Перегрузки также сюда относятся
источник

ПК

Побитый Кирпич... in pro.cxx
Robert B. Garza
Т.е я не могу передать инициализатору по имени значение?
В С++ у параметров функций к сожалению имя ничего не обозначает в точке вызова (легаси от Си)
источник

R

Robert B. Garza in pro.cxx
wonder
Может поможет делегирующий конструктор, почитайте про него
спасибо пойду посмотрю
источник

w

wonder in pro.cxx
Robert B. Garza
спасибо пойду посмотрю
У simplecode'а есть ролик по этой теме, но помимо этого в интернете достаточно информации)
источник

ПК

Побитый Кирпич... in pro.cxx
Robert B. Garza
А как мне передать тогда к примеру 5 аргумент?
источник

MK

Mikhail Kalugin in pro.cxx
А как это поможет передать аргумент по имени?
источник