| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Вызов функции NULL-pointer'а |
| Автор: borisbn 24.11.2010, 00:40 | ||||
| День добрый. Есть такая распространённая задача: в конструкторе класса передаётся объект, функции которого вызываются в других функциях класса. Псевдокод:
В случае, когда объект ( указатель на него ) ни в каких случаях не может быть нулём есть смысл сделать ссылкой. В случае, когда объект может быть не создан ( NULL ) приходится проверять: if ( объект ). Так вот, хочу избавиться от if ( объект ). как-то так
Не могу сообразить как это сделать. И возможно ли это вообще. P.S. УниверсальнаяОбёрткаНадОбъектом ессно не должна знать о классе ТипОбъекта. P.P.S. #define SAFE_CALL( объект, ф-ция, парамтеры ) не предлагать, т.к. не люблю макросы и код становится не читаемым. |
| Автор: boostcoder 24.11.2010, 01:09 |
| тернарное выражение? |
| Автор: azesmcar 24.11.2010, 05:54 | ||
? |
| Автор: borisbn 24.11.2010, 09:43 | ||||||
boostcoder, не совсем ( вернее совсем нет
ничем не лучше, чем
я просто хочу сделать класс-обёртку над любым указателем на объект, который бы транслировал вызовы функций объекту, если он не 0, и НИЧЕГО не делал бы в другом случае. azesmcar, я рассматриваю случай, когда не созданный объект это НЕ ИСКЛЮЧИТЕЛЬНАЯ, а НОРМАЛЬНАЯ ситуация. Чтобы не дать возможность создавать 0-й объект лучше использовать ссылку. Т.о. я хочу что-то типа:
Наверное, это просто невозможно, но чем чёрт не шутит ... Может всемирный разум что-нибудь придумает |
| Автор: borisbn 24.11.2010, 10:13 | ||||
Если это будет выглядеть как
то можно, конечно, и макросами, хотя не хочется. А как сделать через указатель на функцию - что-то не соображу. |
| Автор: azesmcar 24.11.2010, 10:21 | ||
как-то так..и перегрузить для нескольких аргументов, но это извращение.
|
| Автор: Леопольд 24.11.2010, 13:42 | ||||
Когда ж, уже новый стандарт примут... |
| Автор: azesmcar 24.11.2010, 14:31 |
| Леопольд Все равно извращение |