Имя переменной совпадает и именем ее типа

6yrop

Плохо это или хорошо? (в частности в C++ )

maggi14

В С/С++ так не бывает. В Паскале - сойдет для сельской местности

psm-home

По-моему это создаёт ненужную путаницу. Так что, даже если какие-то языки позволяют делать так, я считаю, что так делать не надо.

6yrop

не знаю как в остальных компиляторах, в VS7 можно

6yrop

путаница не всегда возникает, а придумывать какие-то искусственно различные имена, используя, символ подчеркивания, заменяя большие буквы на маленькие, придумывая какие-то приставки - это не красиво, и читать не удобно, поскольку такие имена сложно запоминать.
Если в программе встретился неизвестный символ, то можно навести на него курсор мыши и посмотреть его описание, поэтому путаница не возникнет. Раз уж сейчас есть такие замечательные среды, почему не использовать их возможности...

sergey_m

дополняй тип постфиксом '_t', ничего не придумывай.

psm-home

Раз уж сейчас есть такие замечательные среды, почему не использовать их возможности...
Ну в общем да. С этим я согласен. Кстати это типичный аргумент противников венгерской нотации.

rosali

В С/С++ так не бывает.

Бывает бывает.
int int;
конечно, нельзя написать,
А вот
A A;
можно... только зачем?

rosali

путаница не всегда возникает

Ооо будь осторожен с такой позицией!..
Есть, скажем функция, в длиннющим телом в котором ты не собираешься разбираться, ты берешь и в ее начале приписываешь
...
A A;
A.f;
...
Так вот в этом длиннющем теле A(5) теперь обозначает не вызов конструктора A::A(5 а A.operator5). Неожиданно, да?

rosali

аргумент противников венгерской нотации

Я венгерскую нотацию не люблю за то, что не ясно как ее синхронизировать.
Вчера я думал, что это поле должно быть int, а сегодня решил, что лучше double, и что? Искать все места где используется и переименовывать?...
Я всегда типы называю с большой буквы а переменные с маленькой и счастлив Это меня Haskell приучил, там синтаксис такой

freezer

путаница не всегда возникает

если бы путаница не возникала, не было бы такой фичи в .NET-овских обфускаторах.

6yrop

не всегда

freezer

ага, я б даже сказал никогда компилятор в них не путается

6yrop

компилятор C# - да, С++ нет, могу пример привести

freezer

когда путается - надо ему чуть-чуть помочь: слово struct написать, например...

Ivan8209

IF THEN=ELSE; THEN IF=THEN; ELSE THEN=IF;
Чтобы сбить с толку вероятного противника.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
Имя или ник:
Комментарий: