СайтФорумОбсуждение

Краткий обзор C++0x (Комментарии к новости) (6 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#75
16:02, 15 янв 2006

AgeNT
Ты вот знаешь как класс будет делаться? Как в файл пихаться будет? Нато и плюс Си, что он более низкоуровневей...

#76
17:03, 15 янв 2006

на С скорость грохнуть - надо постараться, на С++ наоборот - надо его хорошо знать чтобы писать быстрый код. Ну и ещё дофига отличий. Например, если в C я напишу (float*)some_array, то я точно знаю что адрес начала массивы будет задействован как указатель на float (конечно, это не относится к вызову функции, получающей указатель на другой тип), а в С++ преобразователь типа моет быть переопределён и заранее нельзя сказать что произойдёт. С одной стороны это удобно, но это - лежащие грабли, которые нужно обходить (или наступать на них, кому как больше нравится), т.е. делать дополнительные действия.
уже предвижу посты вроде "крепкий косяк" и т.д....

#77
18:04, 15 янв 2006

st0ke
что значит "как класс в файл пихаться будет"?

keltar
> на С скорость грохнуть - надо постараться, на С++ наоборот
начинающие программисты "грохают скорость", когда начинают не по существу пользоваться сложными вещами
в С этих вещей нет, и чтобы их сделать - надо именно постараться
в С++ они есть
и не надо хорошо знать С++, чтобы написать на нем сишную программу, в которой "скорость грохнуть - надо постараться"

> адрес начала массивы будет задействован как указатель на float
че?

#78
18:18, 15 янв 2006

some_function(float*);

sometype i;
some_function((float*)&i);

в с++ для sometype может быть переопределён operator float*(), и заранее нельзя сказать какое действие будет произведено и получим ли мы адрес объекта

#79
18:21, 15 янв 2006

keltar
здрасьте
как ты для указателя переопределишь приведение?

к тому же в С++ на этот случай есть reinterpret_cast
а static_cast, по определению, - статически разрешаемое приведение типа по заданному алгоритму. переопределяя приведение ты как раз задаешь этот алгоритм
С-style кастом вообще лучше не пользоваться

#80
18:31, 15 янв 2006

> в с++ для sometype может быть переопределён operator float*(), и заранее нельзя сказать какое действие будет
> произведено и получим ли мы адрес объекта
он что переопределится случайным образом?

#81
18:44, 15 янв 2006

xmvlad
а ты помнишь все определения для сотни классов? сомнительно

AgeNT
>С-style кастом вообще лучше не пользоваться
почему? юзаю везде либо его, либо dynamic_cast, и юзать static_cast смысла не вижу. Вот только не надо приводить аргумент страуса (или это не он писал?) что stati_cast писать больше и поэтому заставляет задуматься нужен ли он

#82
18:58, 15 янв 2006

keltar
static_cast разрешает делать меньше преобразований, чем C-style cast, т.е. более "безопасен"
он лучше вписывается в синтаксис С++ (выглядит как шаблонная функция, а не как какие-то скобочки)
его легко найти текстовым поиском

#83
20:55, 15 янв 2006

st0ke
>Ты вот знаешь как класс будет делаться? Как в файл пихаться будет? Нато и плюс Си, что он более низкоуровневей...
А чего тут такого страшного. В принципе, при разработке ОС на C++, отказаться нужно от: исключений, глобальных переменных, менеджера памяти(кста, его можно и нужно в последствии реализовать), RTTI, ну и конечно от стандартной библиотеки которая требует CRT(и это тоже поправимо), плюс мелочи которые я забыл упамянуть. Но зато в итоге мы получаем все остальные прелисти С++: ООП, шаблоны и прочее... А скорость и размер финального кода - зависит в большей степени от программиста.

#84
0:38, 16 янв 2006

uns

#85
2:04, 16 янв 2006

Ось тоже лучше писать на С++.
Код на С++ быстрее чем на С например из-за шаблонных функций а не указателей
на функцию.
Также код(скомпилированный) на С++ не имеет больший размер чем С.

Страуструпа читайте http://public.research.att.com/~bs/.

keltar
Рассмешил.


А чё это при написании оси нелья пользоваться исключениями например?

#86
7:19, 16 янв 2006

Cadaverillo
>Ось тоже лучше писать на С++.
Ты писал? Ты знаешь вообще хоть что-то кроме Страуса?
Я думаю он просто пытается раскрутить свой язык, вот и всё....

> из-за шаблонных функций а не указателей на функцию.
Чем это указатель на функцию и шаблон функции схожи?

>Страуструпа читайте http://public.research.att.com/~bs/.
Маркетинг дело сложное, он же програмист => знает алгоритм зарабатывания денег

>Также код(скомпилированный) на С++ не имеет больший размер чем С.
Ага, особенно если заюзать шаблоны! Проверь! Тока не не компилятором от Micro$oft, а то я буду тестить С++ на компиляторе паскаля ;)

>Код на С++ быстрее чем на С
Приведи примеры? Кстати не думал почему многие пишут ОС на Си? Тот же Линус, или мой нелюбимый M$???

>keltar
>Рассмешил.
Ты пару месяцев прогаешь на С++ более-менее. Что вы вообще можешь знать? Прочитал пару доков? Почитай доки по Си, прийдёшь в радость, они маленькие, простые...

Daevaorn
>все остальные прелисти С++: ООП, шаблоны и прочее..
ООП и на Си есть. Недавно писал, как можно аналог классов сделать через стурктуры...

>что значит "как класс в файл пихаться будет"?
Ну как при компилинге будет выглядеть код проги? Я вот точно знаю что всё будет как мне надо и ничего лишнего.

#87
8:49, 16 янв 2006

st0ke
http://en.wikipedia.org/wiki/BeOS

#88
9:26, 16 янв 2006

st0ke
> Ага, особенно если заюзать шаблоны! Проверь! Тока не не компилятором от Micro$oft, а то я буду тестить С++ на компиляторе паскаля ;)
шаблоны не генерят лишнего кода
это программеры иногда генерят лишние шаблоны
никакой Паскаль не писал компиляторов для С++ :)

> Приведи примеры? Кстати не думал почему многие пишут ОС на Си? Тот же Линус, или мой нелюбимый M$???
что представлял собой С++ на момент создания этих ОС?

> ООП и на Си есть. Недавно писал, как можно аналог классов сделать через стурктуры...
в таком случае ООП можно и на ассемблере сделать
но это не аргумент в пользу ассемблера

> Ну как при компилинге будет выглядеть код проги? Я вот точно знаю что всё будет как мне надо и ничего лишнего.
максимум, чем С++ класс будет отличаться от С структуры - это vftp

#89
9:57, 16 янв 2006

Cadaverillo
>Рассмешил.
а ты то меня как рассмешил :), ты наверное знаешь С++ лучше всех. Хотя я ещё помню как ты указатель на 20 байт сдвинуть не мог - а учил бы С, нивжизь бы такой проблемы не было, т.к. там без знаний этого писать нереально. Т.е. научился бы методом "выкручивания рук", и никогда бы уже не забыл

AgeNT
>шаблоны не генерят лишнего кода
угу, это делает компилятор когда их раскрывает :)
>это программеры иногда генерят лишние шаблоны
это делают то которые Александреску начитались :)

исключения и на С можно бросать, читайте man 3 setjmp, man 3 longjmp. Хотя в ядре ОСи я бы 256 раз подумал прежде чем делать это...
таблицы виртуальных функций тоже вручную можно - через структуры с указателями на функции. Неудобно, но наглядно :)
а вот generic programming на С делать очень сложно, по надеюсь понятным причинам.

Страницы: 1 2 3 4 5 6 7 Следующая »
СайтФорумОбсуждение

Тема в архиве.