|
|
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Имеет ли значение на С++ порядок if (val==null) if (null==val) Если да, то какие последствия... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 18:30:47 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Нас бог миловал у нас null нету. А вообще оператор == - это функция с сигнатурой bool operator(const LeftType& left, const RightType& right); Можно всяко наворотить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 18:40:20 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
А как на null проверять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 18:48:46 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
А вот так правильно Код: plaintext 1. 2. 3. 4. Можно так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 19:10:08 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Имеет, если одно присваивание забудешь. А так нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 21:42:02 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
SATURN2 пишет: > Имеет ли значение на С++ порядок > > if (val==null) > > if (null==val) Нет, не имеет. Существуют клинические случаи с переопределённым оператором ==, когда все же разница есть, но это очень частное исключение. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 09:53:58 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
SATURN2Имеет ли значение на С++ порядок if (val==null) if (null==val) Если да, то какие последствия... Только если val - объект: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. В С++ если оба типа простые, то переопределять оператор == нельзя. Тогда - не имеет. Если же один из опрерандов сложный тип, то - можно. Тогда будет разница. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 10:11:52 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Имеет если var class с переопределенным operator == (убил код - пример смотри выше) Но все равно запись типа Код: plaintext Код: plaintext И потом сто лет искать с чего бы переменная вдруг пропала. А хуже если эксепшенов не будет, а просто тупая учетка памяти. Найти ее потом может быть очень сложно. Ошибку типа Код: plaintext не пропустит компилер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 10:22:50 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Igor Barchenko wrote: > > Но все равно запись типа > > if(NULL == var) > > предпочтительнее стилистически из за возможной ошибки Я бы так не сказал. На мой взгляд это дело вкуса. Более того - считаю, что в самой технике больше вреда, чем пользы. Читать такие тексты тяжело (это тоже можно считать определенной разницей в записи), всех проблем она не решает, ошибки такого рода очень редки, да и исправляются они уже в первом сеансе отладки, если не раньше, просматривая текст после написания. Я одно время пытался ее использовать, а потом понял, что раз уж вспомнил, что нужно наоборот написать, то проще убедиться в корректном написании знака операции. А самая лучшая техника для защиты от подобных ошибок это набор вслепую - отлично действует. ;-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 19:28:44 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Ну и наворочили вариантов. Простый ответ - если одного и того же типа левая и правая страна - не имеет. Если РАЗЛИЧНОГО типа, тогда ПРАВАЯ сторона "ковертится" в тип, котоый СЛЕВА. Про предопределенный оператор уже вспомянули. А по вопросу , что можно "упустить" ошибку типа if ( val = null ) - для етого есть WARNINGS у компилятора. Не ленитесь, настройте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 22:45:05 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
teras пишет: > Я бы так не сказал. На мой взгляд это дело вкуса. Более того - считаю, > что в самой технике больше вреда, чем пользы. Читать такие тексты тяжело > (это тоже можно считать определенной разницей в записи), всех проблем > она не решает, ошибки такого рода очень редки, да и исправляются они уже > в первом сеансе отладки, если не раньше, просматривая текст после > написания. Я одно время пытался ее использовать, а потом понял, что раз > уж вспомнил, что нужно наоборот написать, то проще убедиться в > корректном написании знака операции. А самая лучшая техника для защиты > от подобных ошибок это набор вслепую - отлично действует. ;-) +1. Это ж как надо не знать язык, чтобы боятся спутать сравнение с присваиванием ! На самом деле я написал гневное письмо про ид...тов которые это выдумали, и деб....ов, которые это используют, но, подумав, не послал, посчитав что будет слишком грубо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 11:34:19 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
TPAKTOPA пишет: Если РАЗЛИЧНОГО типа, тогда ПРАВАЯ сторона "ковертится" в тип, > котоый СЛЕВА. Про предопределенный оператор уже вспомянули. Боюсь что это твои девичьи мечты. Надо стандарт смотреть, да лень. Но очевидно, что если ты будешь сравнивать double и int, то независимо ни от чего будут ставниваться double. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 11:36:12 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Будет все преобразовано в double, равно как и при сложении и тп И вообще лучше всего указатели проверять if(a) - и короче и не оставляет места для разыгравшегося воображения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:18:10 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
TPAKTOPA wrote: > > Простый ответ - если одного и того же типа левая и правая страна - не > имеет. Если РАЗЛИЧНОГО типа, тогда ПРАВАЯ сторона "ковертится" в тип, > котоый СЛЕВА. Про предопределенный оператор уже вспомянули. В бинарных операциях оба операнда приводятся к ОБЪЕМЛЮЩЕМУ типу, а в арифметических это еще и становится типом результата. Например, int OP unsigned int становится unsigned int OP unsigned int. Приведение к левому типу и в самом деле существует в некоторых языках. Но это точно не C/C++. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 12:39:37 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
Igor Barchenkoпредпочтительнее стилистически из за возможной ошибки Код: plaintext blindedИ вообще лучше всего указатели проверять if(a) - и короче и не оставляет места для разыгравшегося воображениянапример, в шарпе такое не прокатит, возможно, в жабе тоже, не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:14:24 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
maXmoа стилистически эта запись просто убитаяя имел в виду NULL==val ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:15:04 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
maXmo blinded И вообще лучше всего указатели проверять if(a) - и короче и не оставляет места для разыгравшегося воображениянапример, в шарпе такое не прокатит, возможно, в жабе тоже, не уверен. Мы вроде про С++ говорим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:40:53 |
|
||
|
спор возник на java ...
|
|||
|---|---|---|---|
|
#18+
ну судя по названию топика, здесь не только с++ замешан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2007, 13:46:08 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34909954&tid=2027878]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 194ms |
| total: | 491ms |

| 0 / 0 |
