Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему все любят С++? 
:(
    Опции темы
Void
Дата 16.10.2005, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(LSD @ 16.10.2005, 12:05)
Как это никто не гарантирует???

UB, оно UB и есть. smile Конечно, если руководствоваться здравым смыслом, то ничего подобного здесь быть не может, и вариантов поведения не так много, но Стандарт по этому поводу ничего не говорит.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
DeadSoul
Дата 16.10.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Цитата(Perchilla @ 16.10.2005, 00:25)
Цитата (DeadSoul @ 15.10.2005, 23:33)

int i=0;
std::cout<<++i<<++i;


а что тут неоднозначного, никак понять не могу... Аж проверить заставили ! 

http://rsdn.ru/Forum/Message.aspx?mid=1424298


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Дрон
Дата 16.10.2005, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 92



Цитата(LSD @ 16.10.2005, 11:05)
А вообщее, повторюсь еще раз, это не имеет никакого отношения к синтаксису. Да можно просто отказаться от использования "плохих" конструкций языка, но тогда зачем они в нем?

Ну, давайте тогда скажем: С++ -- отличный язык с плохим синтаксисом smile

"Плохие" конструкции нужны для того, чтобы умные люди могли из них извлекать выгоду, а идиоты не становились программистами.

В реальных проектах вообще и мысли ни у кого не возникнет, чтобы что-то из приведённого выше написать.
Там каждый метод состоит из вызовов других методов, которые состоят обычно из десятка другого простейших(!) операций.

Писать cout << i++ уже плохо, поскольку здесь мы одновременно выводим в поток и обновляем данные, что по-хорошему должно быть разделено.

Цитата(LSD @ 16.10.2005, 11:05)
Windows - достаточно большой проект? smile

А оно разве не на Си написано?


--------------------
Да. Именно так.
PM   Вверх
LSD
Дата 16.10.2005, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата
"Плохие" конструкции нужны для того, чтобы умные люди могли из них извлекать выгоду, а идиоты не становились программистами.

Ага, у кого даже подпись подобная была. Типа "крутые" программеры, не ошибаются, не имеют плохих привычек в написании кода и не существуют smile
Человек слаб, и ему свойственно ошибаться и лениться. Я знал людей которые утверждали, что Си лучше паскаля, тем что там операторные скобки пишутся фигурными скобками, а в паскале begin/end. Это дескать очень долго набирать.

Цитата
А оно разве не на Си написано?

Оно???
smile smile smile smile

Ты советовал заглянуть в код любой большого (ну, пара мегабайт текстисходников) проекта на С++ вот я спросил, винда подойдет?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
En_t_end
Дата 16.10.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



LSD
Цитата(LSD @ 16.10.2005, 21:25)
проекта на С++

Вот именно... хоть часто пишут C++/C, но вот обратное C/C++ - не верно.
Windows я так смею утверждать написана на низкоуровневом C.
PM MAIL ICQ Skype GTalk Jabber   Вверх
LSD
Дата 16.10.2005, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(En_t_end @ 16.10.2005, 18:41)
Windows я так смею утверждать написана на низкоуровневом C.

Windows большой, и помимо ядра у него много что есть.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
S.A.P.
Дата 16.10.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 1
Всего: 71



Цитата(Lamer @ 16.10.2005, 09:17)
А какой результат?
1 2

Да, у меня 1 2 получилось, компилил на MinGW и не увидел ничего в этом странного.

Правда потом, как DeadSoul дал ссылку на RSDN, решил проветить на Visual C++, получилось 22 smile .

Кстати, тот же MinGW в этом коде
Код

int a = 0;
int b = 0;
b = ++a + ++a;
std::cout<<b;


выводит все же 4, как и VC. Хотя если бы следовал предыдущему правилу, должно было быть 3.

Надо стандарт рыть, смотреть. smile
PM MAIL   Вверх
Void
Дата 16.10.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(Perchilla @ 16.10.2005, 19:57)
Надо стандарт рыть, смотреть.

Не надо.
Изменение любой переменной более одного раза между двумя точками следования ведет к неопределенному поведению
По этой же причине неверны конструкции вроде:
Код
a ^= b ^= a ^= b;

и т. д.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Дрон
Дата 16.10.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 92



Цитата(LSD @ 16.10.2005, 18:25)
Оно???

Как-то так сложилось, что о Windows я говорю в среднем роде. Мне тут уже сказали, что на самом деле правильно будет в женском... Но мне пофиг smile
Добавлено @ 20:35
Цитата(LSD @ 16.10.2005, 18:25)
Я знал людей которые утверждали, что Си лучше паскаля, тем что там операторные скобки пишутся фигурными скобками, а в паскале begin/end. Это дескать очень долго набирать.

Это не только набирать дольше, но и читать трудно smile smile

Да ладно вам спорить-то.
Тут дело привычки, я после бейсика очень долго к Си привыкал... Теперь, наоборот, вид бейсиковского кода сильно шокирует...

С++ просто один из многих языков...
Как там кто-то давным давно сказал: "С++ -- самый худший из объекто ориентированных языков, но остальные ещё хуже".

Поэтому на сабжевый вопрос я бы ответил: так уж сложилось исторически.

smile

Это сообщение отредактировал(а) Дрон - 16.10.2005, 20:39


--------------------
Да. Именно так.
PM   Вверх
En_t_end
Дата 17.10.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Цитата (DeadSoul @ 15.10.2005, 23:33)
int i=0;
std::cout<<++i<<++i;
а что тут неоднозначного, никак понять не могу... Аж проверить заставили ! 

Это не просто плохой стиль - это уродство и непортируемо сразу. И самое, что противное, что подобные вещи пытаются засунуть во все тесты по Си, это просто трясет и выводит из себя. Чтобы ответить правильно на эти вопросы нужно добавить вариант - зависет от рук создателя компилятора, но так как такого варианта нет, начинаешь ёрвничать.
Добавлено @ 15:44
b = ++a + ++a; - в ту же топку....
PM MAIL ICQ Skype GTalk Jabber   Вверх
nikitao
Дата 17.10.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: нет
Всего: 26



Цитата
Как-то так сложилось, что о Windows я говорю в среднем роде. Мне тут уже сказали, что на самом деле правильно будет в женском... Но мне пофиг

Windows-оно т к windows="окна"="окно"*n=>windows это полное ОНО. smile
Цитата
Изменение любой переменной более одного раза между двумя точками следования ведет к неопределенному поведению

На себе натерпелся.


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Петрович
Дата 17.10.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 2
Всего: 55



Цитата(nikitao @ 17.10.2005, 17:02)
Windows-оно т к windows="окна"="окно"*n=>windows это полное ОНО. 

Мдя. Может С++ ты и знаешь. А вот с русским, у тебя облом. smile В русском языке, "окна" это они.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
DeadSoul
Дата 17.10.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: нет
Всего: 11



Цитата(En_t_end @ 17.10.2005, 15:43)
Цитата (DeadSoul @ 15.10.2005, 23:33)
int i=0;
std::cout<<++i<<++i;


En_t_end, я ссылку на rsdn давал. Ты сколькими компилятора прогнал этот пример?


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
S.A.P.
Дата 17.10.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 1
Всего: 71



Цитата
Мдя. Может С++ ты и знаешь. А вот с русским, у тебя облом. smile В русском языке, "окна" это они.
А система "окна" - она smile .

PM MAIL   Вверх
JekaZZ
Дата 19.10.2005, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 6.10.2005

Репутация: нет
Всего: 3



Цитата
Какое значение получит переменная с, после такого вычисления:


Это уже на совести програмера. Присвоение прямо в вычислениях (как в этом случае для 'a') сделано не для
Код

a=5; 
b=10; 
с = a*b - 36 / (a=(b+2));


а для удобства в (например):
Код

char c;
while((c=getch()!=27))
{
      switch(c)
      .......................... и т.д.
}

и т.п.

Это сообщение отредактировал(а) JekaZZ - 19.10.2005, 21:22
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1611 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.