Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.29.145] |
|
Сообщ.
#1
,
|
|
|
Пусть есть код.
void Form_Main::on_lineEdit_ADC1_0_editingFinished() { if (ui->lineEdit_ADC1_0->text() == "") ui->lineEdit_ADC1_0->setText(ui->lineEdit_ADC1_0->placeholderText()); } Очень много "ui->lineEdit_ADC1_0->". Как в контексте данного кода сократить его запись? |
Сообщ.
#2
,
|
|
|
В контексте именно данного кода может оказаться, что незачем, ибо компилятор и сам сократит, а если и не сократит, то выигрыш от нескольких тактов будет ничтожен в сравнении с человеческими мороками на сокращение кода. А вообщее, обзываете=заводите новую переменную=указатель: o = ui->lineEdit_ADC1_0; и в путь.
|
Сообщ.
#3
,
|
|
|
void Form_Main::on_lineEdit_ADC1_0_editingFinished() { using t = ui->lineEdit_ADC1_0; if (t->text() == "") t->setText(t->placeholderText()); } |
Сообщ.
#4
,
|
|
|
Цитата Сергей85 @ Очень много "ui->lineEdit_ADC1_0->". Как в контексте данного кода сократить его запись? 1. Если это единственный вариант такого кода, то не обращай внимания. 2. Но если очень хочется, или много таких вариантов - тогда унаследуйся от класса, экземпляром которого является "ui". Сделай всё вышеприведённое одной процедурой производного класса. (Или, если возможно, отредактируй класс, экземпляром которого является "ui".) Тогда твой исходник примет приблизительно такой вид: void Form_Main::on_lineEdit_ADC1_0_editingFinished() { ui->SomeAction(); } |
Сообщ.
#5
,
|
|
|
_lcf_, только не using, а auto.
|