Название: Метод безымянного объекта Отправлено: Flakes от Март 22, 2008, 16:28 Думаю это самый подходящий раздел для вопроса.
Я хотел бы не объявляя явно объект (вроде такие называются безымянными) добраться до его свойств через метод и изменить их. Или другими словами создав безымянный объект сразу выполнить его метод. Есть кусок: Код: QTextEdit Notes; хотелось бы его сократить например до Код: ... или сделать так: Код: QFont * font = new QFont().setBold(true); но проблема в том что метод void QFont::setBold ( bool enable ) возвращает void, и в первом варианте на это ругается. В Java это делается без проблем... и так и выглядело бы Код: new QFont().setBold(true); может каким то образом можно впихнуть setBold() в параметр конструктора? Название: Re: Метод безымянного объекта Отправлено: vregess от Март 22, 2008, 21:09 Хотелось бы поинтересоваться, зачем это надо.
Название: Re: Метод безымянного объекта Отправлено: Flakes от Март 23, 2008, 02:49 просто у меня страсть к минимализму...
Название: Re: Метод безымянного объекта Отправлено: vregess от Март 23, 2008, 10:12 ну можешь сделать обертку для интересующего класса, которая будет выполнять нужную инициализацию или там макрос придумать...
ИМХО в контексте с++ запись вида Код: QTextEdit Notes; как раз и будет считаться "минимализмом". А код вида Код: Notes->setCurrentFont(QFont().setBold(true)); Первый пример читать удобнее. используй asm, если уж такая тяга к минимализму) скорее всего такое сделать низя, по крайней мере мне не встречалось решение. Название: Re: Метод безымянного объекта Отправлено: Tonal от Март 24, 2008, 08:17 Код: inline QFint setBold(QFont fnt, bool isBold) { Название: Re: Метод безымянного объекта Отправлено: Flakes от Март 24, 2008, 11:52 Код: inline QFint setBold(QFont fnt, bool isBold) { это конечно вариант, но немного утрированный. Все равно спасибо всем! |