Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.89.85] |
|
Страницы: (42) « Первая ... 2 3 [4] 5 6 ... 41 42 ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Потому что приходит мысль 'что-то задано и ладно'. Частично виновата. Сходу непонятно чем инициализировать: да, минимум говорит о некоем минимуме, но она могла бы называться и 'среднее' и ещё как-то, не связанное с крайними целыми значениями.
Цитата D_KEY @ Ибо приходит мысль 'а чему равно значение переменной?'. Вопрос о правильности оного - чутка глубже.Почему бы этой мысли так же не приходить в голову и в случае отсутствия инициализации? Возможно, что я перебрал. Просто не вспоминаю случаев, где такое присваивание применялось. Всякие народные '-1' или миллион помню, а таких - нет. |
Сообщ.
#47
,
|
|
|
Мне кажется, что у вас что-то личное. Я, например, иначе воспринимаю и мысли у меня возникают совсем иные. Думаю, вы не сможете показать, что в отсутствии инициализации проблем, сходных с вашим примером, не возникает или что их возникает меньше.
|
Сообщ.
#48
,
|
|
|
Цитата D_KEY @ Вы правы, чтобы у меня было что-то общественное - дико. Мне кажется, что у вас что-то личное. Цитата D_KEY @ Показать==доказать? Да, не смогу. Но я попытался привести схему тут:Думаю, вы не сможете показать, что в отсутствии инициализации проблем, сходных с вашим примером, не возникает или что их возникает меньше. Цитата Славян @ человек смотрит и видит, что что-то задано и мысль об инициализации пропадает, заменяется на 'всё тут хорошо'. А вот если бы её не было вообще, то вполне возможно, что мысль об инициализации родилась бы в нужном месте, а тогда бы и ошибка не возникла. Хотя, это была бы не инициализация, а правильное присвоение |
Сообщ.
#49
,
|
|
|
Цитата Славян @ Цитата Славян @ человек смотрит и видит, что что-то задано и мысль об инициализации пропадает, заменяется на 'всё тут хорошо' С точки зрения отсутствия мусора в переменной - действительно хорошо. А в остальном-то ничего не поменялось. Цитата А вот если бы её не было вообще, то вполне возможно, что мысль об инициализации родилась бы в нужном месте По мне так наоборот... Ибо квалификация такого человека под вопросом. |
Сообщ.
#50
,
|
|
|
Цитата Славян @ Потому что приходит мысль 'что-то задано и ладно'. Частично виновата. Это каким местом нужно думать, чтобы такая мысль пришла? Нормальные люди всегда приводят объект к нужному состоянию перед работой с ним. Нормальный человек, например, всегда задаст нужное начальное значение переменной перед её использованием в цикле и даже не станет смотреть, была ли «инициализация» где-то ранее или нет. |
Сообщ.
#51
,
|
|
|
В объекте не может быть мусора.
|
Сообщ.
#52
,
|
|
|
Цитата Qraizer @ В объекте не может быть мусора. В C++ может быть и мусор. Если ты забыл проинициализировать поля типов, для которых не будет вызван конструктор по умолчанию, если его явно не указать. Думаю, что ты об этом знаешь не хуже меня. |
Сообщ.
#53
,
|
|
|
Цитата korvin @ Головой.Это каким местом нужно думать, чтобы такая мысль пришла? Цитата korvin @ Да, и это и отличает 'нормальных' людей, от KILLER'j-D_KEY'евских, жаждущих 'привести объект к ненужному, но начальному состоянию где-то в начале, а не пред работой с ним'. Нормальные люди всегда приводят объект к нужному состоянию перед работой с ним. |
Сообщ.
#54
,
|
|
|
Во-первых, D_KEY, в объекте не может быть мусора. Во-вторых, ошибка и в конструкторе, и в инициализаторе одинаковым образом не сделает объект. В-третьих, в Плюсах конструктор по-умолчанию будет вызван всегда, если явно не указан или не подразумевается иной. В-четвёртых, не хуже тебя я знаю о том, что ты не упомянул, но я об этом и не говорил, будь внимательнее к цитируемым фрагментам.
P.S. Как я и предвидел, тема вышла за рамки исходного вопроса довольно быстро. |
Сообщ.
#55
,
|
|
|
У изначального топиксартера плюсы вообще-то. Может ассемблер или брейнфак ещё приплетёшь сюда? Цитата Славян @ Да, наверное можно, но выглядеть будет слишком чуждо, написанному там коду. И заставляет мучиться и выучивать всяческие максимумы, совершенно ненужные, вообще-то. Это твои личные заморочки, а не объективный факт. Лично я в таком присваивании не вижу ничего необычного, да и "выучивать" это не потребуется. Цитата Славян @ Для ясности я вам и расписал подробно как нужно было действовать и сие, более вероятно, привело бы к правильному результату. С чего бы привело? Это: обоснованием не является - нет причин с большей вероятностью прийти это мысли при отсутствии инициализации. В общем, D_KEY уже лучше расписал Цитата Славян @ Да, и это и отличает 'нормальных' людей, от KILLER'j-D_KEY'евских, жаждущих 'привести объект к ненужному, но начальному состоянию где-то в начале, а не пред работой с ним'. Про перенос инициализации двадцать раз говорилось. И нечего приплетать Си опять - см. выше причину. Добавлено Цитата Qraizer @ Во-вторых, ошибка и в конструкторе, и в инициализаторе одинаковым образом не сделает объект. Я правильно понял, что ты объектом называешь только то, что сконструировано без ошибок, в том числе логических? Ведь в первом случае мы получим ... да ничего не получим, а во втором - объект с кривым значением полей. |
Сообщ.
#56
,
|
|
|
Цитата Qraizer @ Во-первых, D_KEY, в объекте не может быть мусора. class A { int x; public: A() { } }; В экземпляре такого класса может быть мусор. Цитата Во-вторых, ошибка и в конструкторе, и в инициализаторе одинаковым образом не сделает объект. Это если мы используем исключения, умеем это делать и не сделали багу. Цитата в Плюсах конструктор по-умолчанию будет вызван всегда, если явно не указан или не подразумевается иной Сравни: class A { int a; public: A() { } }; И class A { int a; public: A() : a() { } }; |
Сообщ.
#57
,
|
|
|
Цитата Славян @ Цитата korvin @ Да, и это и отличает 'нормальных' людей, от KILLER'j-D_KEY'евскихНормальные люди всегда приводят объект к нужному состоянию перед работой с ним. Это что еще такое? Выбирайте выражения. Цитата жаждущих 'привести объект к ненужному, но начальному состоянию где-то в начале, а не пред работой с ним'. В каком начале? Я по-моему на это уже многократно отвечал. |
Сообщ.
#58
,
|
|
|
Цитата D_KEY @ Я не вижу там мусора. В экземпляре такого класса может быть мусор. Добавлено Цитата OpenGL @ Объектом называется экземпляр класса, удовлетворяющим своим контрактам. Следовательно не удовлетворяющий своим контрактам экземпляр класса объектом не является. Всё просто. Однако речь не об этом, это D_KEY вдруг решил об этом поговорить. Я правильно понял, что ты объектом называешь только то, что сконструировано без ошибок, в том числе логических? |
Сообщ.
#59
,
|
|
|
Цитата Qraizer @ Цитата D_KEY @ Я не вижу там мусора.В экземпляре такого класса может быть мусор. А что ты там видишь? Цитата Цитата OpenGL @ Объектом называется экземпляр класса, удовлетворяющим своим контрактам. Следовательно не удовлетворяющий своим контрактам экземпляр класса объектом не является. Всё просто. Однако речь не об этом, это D_KEY вдруг решил об этом поговорить.Я правильно понял, что ты объектом называешь только то, что сконструировано без ошибок, в том числе логических? Речь об инициализации. Я сказал, что зануление переменных и полей класса лучше, чем оставления там мусора. Добавлено http://ideone.com/FdlSvg #include <iostream> using namespace std; class A { int a; public: A() { } int get_a() const { return a; } void set_a(int x) { a = x; } }; int main() { // your code goes here for (int i = 0; i < 10; ++i) { A a; std::cout << a.get_a() << std::endl; a.set_a(i); } return 0; } 1 0 1 2 3 4 5 6 7 8 Это не мусор? А что это? |
Сообщ.
#60
,
|
|
|