ПрограммированиеФорумФизика

На чем пишуться игр для xbox 360 ? (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
11:13, 10 июля 2011

codesnip
> Об этом пишут во всех книгах по плюсам в первой главе.
не все книги одинаково полезны :)))

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

#46
11:40, 10 июля 2011

fsmoke,
>>не все книги одинаково полезны :)))
О том что си++ это улучшенный си написано в том числе и в книге Страуструппа если чё.

>ню ню, а потом эти люди начинают писать на с++ как на с

Ну и пусть пишут.  Чистый си например в 100 раз легче дебажить и просматривать выполнение программы построчно чем на си++.  На си++ это делать  очень проблематично. Дебаг ведь очень важен. Потом на плюсах бывает очень сложно понять почему программа не компилится.  В си всегда можно понять чё не так.

#47
12:05, 10 июля 2011

codesnip
> на плюсах бывает очень сложно понять почему программа не компилится

Тут, я думаю, вполне подходит пословица про плохого танцора и то, что ему всегда мешает

#48
12:08, 10 июля 2011

codesnip
> и в книге Страуструппа если чё.
Это он писал чтобы не пугать сишников :))) - основной его задачей было приучить людей пишущих на чистом с к объектноориентированности(как он сам говорил об этом) - на деле же это совершенно другая философия(и шаблоны её неотъемлемая часть) - на с++ вы скорее проектируете нежели программируете. Так-что Бьерн был хитрый троль :))) и вначале не открывал все карты.

А остальные начали это бездумно копипастить - хотя это уже фактически не требовалось.

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

codesnip
> 100 раз легче дебажить
мне проще с++ - например си код я воспринимаю иногда как абракадабру - из-за того что в приложении сотни и тысячи мелкий фций(штук 50 переходов в дебаге - и мысль уже теряется - просто уже в голове трудно держать всю цепочку) - и понять, что хотел автор просто невозможно - а с++ хотябы классами это более менее структурировано - ну какбе это я про себя говорю :))

#49
12:27, 10 июля 2011

Си не знаю - начал с С++. Когда стал изучать множественное наследование, схемы ромба и прочие хитрости, то жестко сел. То, что методы не являются частью объекта, а отдельным блоком функций, у каждой из которых есть скрытый указатель на сам объект (который, как я понял, на самом деле реализуется как struct), было для меня откровением. И, видимо, поэтому хитрости со множественным наследованием до меня так и не дошли. Такой вопрос: понять множественное наследование стало проблемой потому, что я начал не с си?

#50
13:01, 10 июля 2011

loonypy
> у каждой из которых есть скрытый указатель на сам объект
это везде так (ну почти везде я думаю)

а вообще все это зависит от реализации компилятора - с чего ты взя что
>методы не являются частью объекта, а отдельным блоком функций
что такое вообще объект на низком уровне - это просто блок данных(+ виртуальная карта фций). Так как же, по твоему,  методы  должны являтся частью объекта :))))

в стандарте насколько мне извесно не определено как на низком уровне мне реализовать методы класса - я могу спокойно плюнуть на все реализации современных компиляторов с++ - и сделать свой компиль - где методы будут находится вообще в другом месте - а данные объекта размазать по всей памяти приложения - да как угодно - и это НЕ будет противоречить стандарту.

loonypy
> стало проблемой потому, что я начал не с си?
почему o_O????? - язык это все лишь лингвистические и логические парадигмы - которые позволяют писать код. Вы путаете понятия ЯЗЫК и КОМПИЛЯТОР.
реализация под другой процессор того же с++ может быть координально другой - есть процессоры например где биты внутри байтов имеют другую последовательность - системы, в которых организация памяти абсолютно отлична от x86 - и там возможно методы класса не будут ввиде
> а отдельным блоком функций

НО это не говорит что с++ перестанет быть с++ом - Язык это всего лишь набор правил - ты программировать можешь не на компе а на бумажке :))) - и никто не посмеет сказать что ты не с++ программист

loonypy
> было для меня откровением
видимо не последним

#51
13:09, 10 июля 2011

Barabus
> Выложить на торренты :)
много уже сделал? )

#52
13:49, 10 июля 2011

Xunter
> много уже сделал?
Не считал, думаю, что несколько десятков наберется, но все мои программы специфичны и мало кому нужны. А игры я делать не умею :(

#53
14:01, 10 июля 2011

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

fsmoke
> объект на низком уровне - это просто блок данных(+ виртуальная карта фций
Вот такого низкоуровневого понимания мне не хватает. Студенческое обучение паскаль-делфи-билдер\с++ студия6 этого не дало. До этого думал, что причина в том, что не учил си.

fsmoke
> видимо не последним
ага:)

#54
15:53, 10 июля 2011

Всё нормальные мужики уже давно перешли на брайн фак, не тупите!

#55
20:59, 10 июля 2011

Igor'
> брайн фак
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.

#56
20:59, 10 июля 2011

loonypy
> То есть правила множественного наследования - это решение Страуструпа
ага

ЗЫ
Т.е. все это множественное наследование и виртуальное инстанцирование экземпляров предков при этом наследовании - это выдумки Страуструпа. Так что на компилятор нечего гнать особо - разработчикам компилятора наоборот надо памятник ставить, что всю вот эту логику он смогли реализовать хоть как то.

ЗЫ
Первый компьль кстати сам Б.Страуструп написал - причем он не был вообщем-то компилем - это был интерпретатор из с++ синтаксиса в си - а си уже компилился имеющимся в то время компилером :))))

#57
15:27, 11 июля 2011

fsmoke
Ясно. Не хочу быть навязчивым, но еще два вопроса. Когда-то у Мейера читал, что в с++ есть 2 варианта написания конструкторов, скорость выполнения у каждого разная. Причина связана с уровнем не логики, а ассемблера. Это имеет смысл для всех платформ, даже для приставок? И много подобных нюансов, связанных с аппаратной реализацией кода, нужно учитывать, чтобы разбираться в том, что (скорость выполнения, нагрузка) стоит за тем или иным средством с++?

#58
17:46, 11 июля 2011


loonypy
> 2 варианта написания конструкторов
что ты имеешь ввиду - Мейерс много чего писал :)))

loonypy
> Это имеет смысл для всех платформ, даже для приставок? И много подобных
> нюансов, связанных с аппаратной реализацией кода, нужно учитывать, чтобы
> разбираться в том, что (скорость выполнения, нагрузка) стоит за тем или иным
> средством с++?

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

А при кроссплатформенной разработке вообще лучше не выходить за рамки стандарта - здесь производительность как правило дело 10е - главное чтоб везде собиралось.

Запомни простое правило(почти всегда работает): Универсальное решение - медленное. Частное решение - быстрое.
Каждое решение выбирается от задачи.

Так что я тебе рекомендую оптимизировать алгоритмы - благодаря им ты можешь получить прирост в разы, 10ки а может и 100ни раз - чем переписывать их на асме и получить прирост в 1%

#59
19:31, 11 июля 2011

fsmoke
> что ты имеешь ввиду
Откопал его книгу про 55 советов - не нашел. Похоже спутал с каким-то другим источником.

//1, работает быстрее
class A
{
 public:
          A() : n(1)  
          {   }

private:
   int n;
};

//чем
class A
{
 public:
          A() 
          {
             n=1;
          }
private:
   int n;
};

Это тоже выдумка Страуструпа?

fsmoke
> есть общие принципы оптимизации - но они алгоритмические а не низкоуровневые
fsmoke
> Так что я тебе рекомендую оптимизировать алгоритмы - благодаря им ты можешь
> получить прирост в разы, 10ки а может и 100ни раз - чем переписывать их на асме
> и получить прирост в 1%
Понял.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумФизика

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