Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Архив (Общеигровые вопросы) (http://forum.igromania.ru/forumdisplay.php?f=173)
-   -   С&С++ (http://forum.igromania.ru/showthread.php?t=52013)

NOOB SAIBОT 24.11.2007 18:15

С&С++
 
В данной теме обсуждается всё, связанное с этими языками программирования. А также в тему входит и объектно-ориентированное программирование.
PS Тема добавляется нужной информацией.

[CCCP] Monster 24.11.2007 18:20

А конкретнее? Что вы хотите обсудить по этим языкам программирования? Страуструпа нехватает?

NOOB SAIBОT 24.11.2007 18:23

[CCCP] Monster
Проблемы, свои навыки. Вроде бы я не нарушал правила раздела.

pokibor 24.11.2007 18:44

SIV-PIRATE
Скрытый текст:
Я вот не понимаю, зачем создавать тему "просто что б была", не имея для начала никакой темы для дискуссии? Просто охота создателем прослыть? А если я сейчас насоздаю тем по всем языкам, которые знаю - от шейдеров (кстати, не повредит статейка хотя бы про HLSL/GLSL) до Пролога (и про логическое программирование что-нибудь, хотя это скорее в контексте общего подраздела про AI надо)? Это штук 20 бессмысленных тем выйдет.


Ладно, по теме. Во-первых, ООП - абсолютно другая тема, какое место обсуждению принципов ООП в теме про C++ - не ясно.
Во-вторых, раз на то пошло - задам первый вопрос, выяснять ответ на который мне откровенно лениво, хотя интересно. Каким образом Visual C++ компилирует виртуальные функции и их вызов? Он делает какую-нибудь оптимизацию, или постоянно в тупую вызывает, даже если очевидно применение конкретного блока кода?

NOOB SAIBОT 24.11.2007 18:55

pokibor
Скрытый текст:
Можешь создать их, хотя я ещё не закончил. Мне в лом. Они не будут бессмысленными. Поверь

Цитата:

Сообщение от pokibor (Сообщение 2750438)
ООП

Ты про что? Расшифруй. :lamo:

pokibor 24.11.2007 19:06

SIV-PIRATE
Скрытый текст:
Двадцать тем без постов? Не будут бессмысленными? Ага, верно. Потому что их смысл будет в выставлении мне рейтинга и последующего удаления этих самых тем.
Иначе говоря, для меня создание темы без обсуждаемого вопроса - флуд.

Мда... ООП - объектно-ориентированное программирование. Вроде общеупотребимая аббревиатура.

NOOB SAIBОT 24.11.2007 19:13

pokibor
Скрытый текст:
Почему без постов? Ещё всё в переди. Люди учатся и у них возникают вопросы...

Я их не употребляю.
Цитата:

Сообщение от pokibor (Сообщение 2750438)
ООП - абсолютно другая тема, какое место обсуждению принципов ООП в теме про C++ - не ясно.

Схоже только название и коддинг.

pokibor 24.11.2007 20:39

SIV-PIRATE
Скрытый текст:
Тогда зачем пустую создавать тему "про запас"? Может, мне тогда выдумать темы для "будущих" ЯП? Вот сейчас придумаю название и создам тему - вдруг лет через 100 такой язык появится. :Grin:




Цитата:

Сообщение от SIV-PIRATE (Сообщение 2750667)
Я их не употребляю.

Это к чему?

Цитата:

Сообщение от SIV-PIRATE (Сообщение 2750667)
Схоже только название и коддинг.

Не понял смысла фразы. Я вроде говорил, что обсуждению ООП вообще в теме о C++ не место. Ваш ответ как-то не согласуется с отрицанием моего утверждения...

[CCCP] Monster 24.11.2007 22:53

SIV-PIRATE

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

При всем уважении к автору топика, честно говоря, компетентность его у меня некоторые сомнения вызывает (Ообъектно-Ориентированное программирование обозвать Объектно-Ориентировочным - крайне забавно).

Вот некоторые ссылки, которые сначала следовало посмотреть:

Три кита ООП:
http://www.codenet.ru/progr/cpp/ipn.php

Статьи по языку С++:
http://www.codenet.ru/cat/Languages/C-CPP/


pokibor

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

NOOB SAIBОT 25.11.2007 14:18

pokibor
Скрытый текст:
хм... знаешь - это твоё ИМХО, а это моё, так что делай как знаешь, а я соответственно. а, да, кстати, спс за вопрос)

[CCCP] Monster
Скрытый текст:
правил я не нарушал

Цитата:

Сообщение от [CCCP
Monster;2752199]Ообъектно-Ориентированное программирование обозвать Объектно-Ориентировочным - крайне забавно

нет ничего забавного. я имел ввиду Visual C++. о своей компетентности позобатьтесь, а мою начинающую не трогайте.(тоже при всём уважении)

-AvDay- 27.11.2007 16:22

А есть ли функция которой можно поменять значение одного массива и другого(не обязательно массива, можно переменной, под DOS)? Например a[i] b[j].

pokibor 27.11.2007 17:01

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

-AvDay- 27.11.2007 17:16

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

pokibor 27.11.2007 17:20

Цитата:

Сообщение от AvDay (Сообщение 2767525)
Просто в моем случае масив чисел(масив двухмерный большой) и мне нужно сравнивать значения и вставить их по возростанию. Собсна я подумал что через цикл запустить и функцией менять местами(через проверку разумеется)

Читайте Вирта, "Алгоритмы + Структуры Данных = Программы", раздел про сортировку. В любом поисковике набираете "virt.djvu" и скачиваете книгу.
Где взять программу для просмотра djvu-формата, читайте в конце http://forum.igromania.ru/showthread.php?t=23543.

-AvDay- 28.11.2007 17:16

А что такое swap()??

pokibor 28.11.2007 17:27

Цитата:

Сообщение от AvDay (Сообщение 2772860)
А что такое swap()??

Функция для обмена значениями двух переменных. Не помню, из какого языка, я ей никогда не пользовался.

CatSnowball 01.12.2007 10:53

Цитата:

Не помню, из какого языка
По синтаксису смахивает на Delphi или C++...

hоly_shiter 02.12.2007 19:40

Есть бесплатные версии C++?

pokibor 02.12.2007 20:46

GPower666
Gnu C++ (GCC):
Основное: http://sourceforge.net/project/downl...se_mirror=garr
Конкретизация: http://sourceforge.net/project/showf...?group_id=2435
Лицензия GNU.

Visual C++ Express Edition:
http://msdn2.microsoft.com/ru-ru/vst...36(en-us).aspx
Micro$oft со всеми вытакающими...

Hitokui 25.04.2008 21:56

Стоит ли продолжать программировать на С++, или есть более крутые прогписатели?


Часовой пояс GMT +4, время: 14:46.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.