Вниз
Скачать: CL | DM;

Как передать неявно созданный объект в процедуру?   Найти похожие ветки 

← →
Германн ©   (2008-02-25 01:35) [40]


> Leonid Troyanovsky ©   (24.02.08 20:23) [37]
>
>
> > Loginov Dmitry ©   (24.02.08 20:17) [36]
>
> > Видно, что ради простейшей проверки приходится объявлять
> > переменную. WITH тут не катит. Это что, bad design?
>
> То, что это BD - очевидно.
>
> Некто объявляет класс, планируя использовать его в конструкции
> with. Однако, выясняется, что класс к этому не приспособлен.
>
>

А. Ну да. При разработке класса не подумали о костылях, которые вдруг могут понадобиться.
:-)


← →
guav ©   (2008-02-25 02:29) [41]

> [8] Плохиш ©   (23.02.08 02:19)

Согласен. Более того экономия тоже неочевидна. Компилятор может выделить паять для неявой with переменной на стеке, может поместить в регистр локальныю var-переменную.

Думаю в with привлекает больше не само "присоединение класса к пространству имён", а возможность создать-и-инициализировать переменную в месте где она нужна, С++ way, в обход обычного синтаксиса паскаля (вот в C++ и C# with нет и ни разу он там не нужен). При этом неявность переменной приносит неудобства - нельзя использовать её как хочет автор темы, и создаётся путаница между членами класса в with и не членами класса в with. IMHO не стоит привязываться к with в подобных случаях, и писать with в сложных случаях, а вместо этого таки объявить переменную в var.


← →
Германн ©   (2008-02-25 02:36) [42]


> Германн ©   (25.02.08 01:35) [40]
>
>

Поясню свою мысль
На этапе компиляции компилятор умеет обращаться к относительному адресу вновь созданного объекта. Так кто же запрещает использовать сей относительный адрес?
Почему для "дважды-два" нужно использовать "экспоненту от логарифма"?


← →
Германн ©   (2008-02-25 02:57) [43]


> IMHO не стоит привязываться к with в подобных случаях, и
> писать with в сложных случаях, а вместо этого таки объявить
> переменную в var.
>

Это не наш путь.
В "сложных случаях" with очень вреден. А почему и что есть "сложные случаи"?
А и приходится "объявлять переменную в var".


← →
Германн ©   (2008-02-25 03:15) [44]


> Leonid Troyanovsky ©   (24.02.08 20:23) [37]

Кстати о бритве!
:)



Страницы: 1 2 вся ветка

Скачать: CL | DM;



Память: 0.53 MB
Время: 0.014 c
2-1203946490
Alex8
2008-02-25 16:34
2008.03.23
Включение принтера


2-1203535697
Leha1987
2008-02-20 22:28
2008.03.23
Оптимизация


4-1178650355
Strate
2007-05-08 22:52
2008.03.23
Опять ListView, изменение колонки.


15-1202492057
Пробегал...
2008-02-08 20:34
2008.03.23
Зачем нужен DefWindowProcW, если есть DefWindowProcA?


2-1203507590
серж
2008-02-20 14:39
2008.03.23
ооп вопрос




   Наверх