![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Добрый день.
Можно ли указать параметр по-умолчанию в какой-то ф-ции равным одному из других (предыдущих) параметров. Т.е. так
В лоб такое, конечно, не компилируется, но может есть какое-нибудь "красивое" решение ? Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
|
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
azesmcar, спасибо. На поверхности лежало, но... и на старуху...
Однако, есть один нюанс с перегрузкой функций в интерфейсе класса (не так давно столкнулся на работе): студия такие функции меняет местами в интерфейсе:
так вот, для такого класса студия создаст такую виртуальную таблицу
не знаю, по стандарту это или нет, но Билдер создаст в прямом порядке, т.е. так, как идёт в описании класса (0,1,2,3,4). Поэтому нам пришлось отказаться от перегрузки функций в интерфейсе... А для свободных функций - отличная идея. Буду пользовать. Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
borisbn, Можно и без перегрузки сделать
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
volatile, в случае указателя или любого другого типа, у которго есть "несуществующее значение", это будет работать... а другие ?
прекрасно понимаю, что задаю вопрос из серии "Зарабатывать как фирма Apple - знаю... Посоветуйте, как зарабатывать больше..." интересно, есть ли теоретически способ передать в качестве параметра ф-ции один из предыдущих аргументов ? -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
borisbn, Ну прямой синтаксис этого не позволяет. Здесь привели 2 трюка, помогающих обойти это ограничение.
Если не подходит не одни, то даже не знаю. остаются только макросы. но их даже не хочу вспоминать... Насчет не существующих значений. Почти всегда они есть. Например даже если 0 в вышеприведенном примере используется, в самой функции, например для указания отсутствия данных. Можно еще такой трюк небольшой проделать. Используем тот момент, что числа от 0 до 4 точно никогда не будут реальными указателями. (Это даже зафиксировано официально)
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
оно? http://stackoverflow.com/questions/3243716...vtable-on-win32 в стандарте виртуальных таблиц вообще нет. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
пример для размышления : http://liveworkspace.org/code/c6025f0e7d8b...7537bd4a3cc82ff |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
в точку. кстати, если интересно, между студией и билдером отличие vptr на этом не заканчиваются. У них разное выравнивание на 8. Кто-то из них (не помню кто именно) выравнивает все члены класса на 8, а кто-то все, кроме vptr. При выравнивании на 4 - всё одинаково. Проверял только на 32-х битной системе, ессно. mes, спасибо. красиво. можно ещё (и наверное нужно) сделать default_able_t шаблонной, но... IMHO код будет выглядеть ну совсем не читаемым. Но это моё личное IMHO. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
ну так все в Ваших руках.. зависит от цели .. я лишь привел |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
mes, если мне не изменяет память, то во многих БД именно такой механизм (default_able_t) используется ?
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |