Добрый день!
Разбираюсь в примере QT по работе с modbus, не могу понять вот эту строчку:
auto valueChanged = static_cast<void (QSpinBox::*)(int)> (&QSpinBox::valueChanged);
Идет приведение типов и обращение к члену класса, но какому именно? и что означает знак > ?
У класса QSpinBox есть два сигнала с одинаковым именем, но разной сигнатурой:
void valueChanged(int i)
void valueChanged(const QString &text)
По-этому при записи, компилятор просто не поймет, указатель на какую из перегруженных функции нужно использовать:
auto valueChanged = &QSpinBox::valueChanged;
Для того чтоб "подсказать" компилятору и используется это монструозное приведение типа функции
static_cast<void (QSpinBox::*)(int)> (указатель на функцию);
В Qt есть возможность использовать более короткую конструкцию для этого:
auto valueChanged = QOverload<int>::of(&QSpinBox::valueChanged);
Символ > является частью указания типа у static_cast
static_cast<тип_функции>(указатель_на_функцию);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Не хотят работать слоты в загруженой форме через QUiLoaderВот конструктор базового класса:
Есть функция, которая в вектор помещает числа типа intНеобходимо, чтобы в главной части программы, задав вектор, эта функция заполняла бы его...
Доброе время сутокЕсть класс, у него есть член