Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Какая модель данных в C++??? |
Автор: sisbkoshup 31.3.2007, 10:10 |
Очень уж интересно! Жду самые разные мнения! Спасибо за внимание! _____________ ![]() ![]() ![]() |
Автор: Rockie 31.3.2007, 10:32 |
sisbkoshup, C++ позволяет использовать как процедурную, так и объектно-ориентированную модели. В зависимости от задачи можно выбирать. Подробнее - поисковик и wiki: http://ru.wikipedia.org/wiki/Парадигма_программирования http://ru.wikipedia.org/wiki/C%2B%2B |
Автор: archimed7592 31.3.2007, 10:39 |
эээээ...http://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85 и какие тут мнения могут быть ![]() |
Автор: Любитель 31.3.2007, 10:47 |
Только не лепится тут слово "данных". О чём вопрос - в упор не пойму. ![]() |
Автор: MAKCim 31.3.2007, 10:49 | ||
Что есть модель данных? |
Автор: threef 31.3.2007, 11:58 |
Наверное, реляционная. Или иерархическая?.. А ! Нашел - БНФ ! Хотя...может это - стек, область данных(изменяемых и констант), область кода, куча? или это - 0x00010000 - 0x7FFFFFFF - но это уже не модель... ![]() С наступающим ! |
Автор: Любитель 31.3.2007, 12:05 |
Точно не понял с чем, но возникла мысль. Может этот вопрос - невыдержанный и несколько неудачный первоапрельский розыгрыш. ЗЫ А если серьёзно, sisbkoshup, объясни толком, что ты хотел бы узнать. |
Автор: sisbkoshup 1.4.2007, 10:15 |
Поясняю! Я считаю, что модель данных в С++, есть размерная! И связанно это с расположением объектов на стеке! Но мне многие говорят что модель объеектно-ориентированная! Поясните, пожалуйста, что понимают в програмистком мире под выражением: модель данных? Я пока что считаю, что это связанно с хранением объектов на стеке или в динамической памяти! Модель данных т.е. как хранятся данные! Причем тут объектное-ориентирование я вообще не пойму! Спасибо за внимание... _________________ ![]() ![]() ![]() |
Автор: sisbkoshup 1.4.2007, 14:28 | ||||
Если бы я толком понял, что там написано! То наверное не задавал бы Вам вопросов! __________________________ ![]() ![]() ![]() |
Автор: Daevaorn 1.4.2007, 14:34 | ||
ну не знаю, ещё могу посоветовать пойти в школу, там научат читать и понимать ![]() |
Автор: sisbkoshup 1.4.2007, 18:59 | ||||
Daevaorn, Ты не дебил? Че ты умничаешь??? Если ты умный: ответь на простой вопрос. Который был озвучен в начале. Если не знаешь не грузи ни себя, ни людей... З.Ы. Я просто хочу мнения програмистов, коим ты(Daevaorn) не являешься т.к. не можешь ответить на конкретно поставленный вопрос!!! З.Ы.Ы. Попробую перефразировать! Можно ли сказать, что С++ использует размерную модель данных??? ______________________________ ![]() ![]() ![]() |
Автор: likehood 1.4.2007, 19:10 |
sisbkoshup, а "размерная модель данных" - это понятие, случайно, не из теории баз данных? Что то я с таким понятием не сталкивался. |
Автор: Любитель 1.4.2007, 19:34 |
1. Хватит ругаться! 2. sisbkoshup, что ты понимаешь под "моделью данных". Этот термин не имеет отношения к языкам прграммирования. Ты что-то не так понял. |
Автор: sisbkoshup 1.4.2007, 19:39 |
Может быть! Поэтому и спрашиваю. На самом деле мне это говорили на лекциях, по-моему. Но недавно столкнулся с мнением что модель данных ОО! И подумал, что я чего-то не понимаю! На самом деле в самой википедии напысано: "модель которая описывает представление данных в информационной системе", Информационная система (ИС) — это система, в которой присутствуют информационные процессы (хранение, передача, преобразование информации)! Таки образом програмный стек можно назвать ИС! И в этом случае модель которая описывает данные на стеке в С++, как пить дать, размерная! А не ОО(Вообще какая-то глупость)! Поправте если я ошибыюсь, или поддержите если согласны. __________________________ ![]() ![]() ![]() |
Автор: HappyLife 2.4.2007, 12:30 |
Я соглашусь только с тем, что абсалютно любая память размерная изначально. А уж дальше, можно создовать разные интерфейсы чтобы её сделать абсолютно любой. |
Автор: Earnest 2.4.2007, 12:37 |
Не просто чего-то, а вообще ничего, судя по вопросу. И при этом наезжаешь на людей, имеющих приличную репутацию. Разве не слышал пословицу: хочешь получить дурацкий ответ, задай дурацкий вопрос. Твой именно такой. Тебе дали достаточно ссылок и информации по языку. Читай, учись. Если тебе лектор что-то такое сказал, у него и спроси, что он имел в виду. Или у того, с чьим мнением "столкнулся". |
Автор: JackYF 2.4.2007, 17:21 | ||
sisbkoshup, сравни количество постов Daevaornа и своих, его репутации и своей. Увидел разницу? Нечего на форуме оскорблять людей и задавать вопросы - какая модель данных, не подразумевая, а что же ты хочешь узнать? Теорию - ее предостаточно на wiki и google(). А на практике - не знаю, зачем это кому-нибудь может пригодиться. А за оскорбление - минус в репу. Исправляйся. |
Автор: sisbkoshup 4.4.2007, 16:02 | ||||||||
Я про память и не заикался... Немножко о другом спрашивал о модели данных!!! Не одно и то же...
Модератор: ненормативная лексика на форуме запрещена! Он меня оскорбил, и получил нормальный вопрос, заметте вопрос-не утверждение!!! Скажите Вы не можете на конкретный вопрос ответить по людски, а не как СуперМегаГигаТераГипер умники! Есть такие вещи которые я знаю гораздо лучше каждого из Вас...
Немного отойду от темы! Сначала вопрос: чем обусловлен(почему существует) конструктор копии в языке С++? Почему, более новый язык, java не использует такую конструкцию? P.S. Практика-служанка теории! Если не понимать теории програмирования понту нет что-то писать. Можно говорить что компилятор ведет себя не предсказуемо... ![]() Спасибо за внимание!!! ____________ ![]() ![]() ![]() |
Автор: JackYF 4.4.2007, 16:16 | ||||
Потому что Java берет на себя всю работу с памятью. В основном для корректного копирования динамических данных и нужны конструкторы копий в С++.
Вопрос? А какой ответ ты ожидал? "Да, я дебил."? Или, "нет, ты знаешь, я не дебил"? Покажи то место, где он тебя оскорбил. Вот то место, где ты его оскорбил, я покажу. Да, кстати... не матерись на форуме, а? Даже цитатами. |
Автор: dumb 4.4.2007, 16:38 |
заучивание "ширли-мырли" тебе далось безупречно. нам такое и не снилось. шел бы ты и дальше накапливать эти полезные знания, теоретик убогий. |
Автор: sisbkoshup 4.4.2007, 16:39 | ||||
И что ему мешает взять на себя работу с конструктором копии??? Потому что освобождение памяти, базара ноль на совести java машины, а вот выделение... Чем обусловлен автодеструктор в С++? Почему есть случаи когда автодеструктор и автоконструктор копии приводят к утечке памяти?
Из песни слов не выкинешь! Но я постараюсь держаться в рамках... __________________ ![]() ![]() ![]() |
Автор: Sartorius 4.4.2007, 16:42 |
Предлагаю закрыть тему. ИМХО кроме ругани ничего интересного не будет... |
Автор: likehood 4.4.2007, 16:49 | ||
Конструкция может и не такая, но клонировать объекты в яве можно. |
Автор: archimed7592 4.4.2007, 16:49 | ||
Добавлено через 1 минуту и 28 секунд по фильму ширли-мырли... удачи... мог бы понизил бы тебе репутацию ещё раз... |
Автор: Earnest 4.4.2007, 16:52 |
sisbkoshup, ответы на свои вопросы ты найдешь в книге Страуструпа "Дизайн и эволюция С++". В ней подробно (и очень занимательно) описано, почему многие конструкции и парадигмы в C++ именно такие, а не другие. Вкратце же можно сказать, что основная идея в C++ такова: не платить за то, что тебе не нужно. Да уж постарайся. |
Автор: sisbkoshup 4.4.2007, 16:56 | ||||||
В том все и дело! Что в яве в ObjectPascal И др языках с ССЫЛОЧНОЙ моделью данных! Где имя объекта ссылка на объект в динамической памяти актуален конструктор копии!!! А в С++ члены поля класса хранятся на стеке! Это 100%!
Я не программист! Я-математик(будующий)! Короче кроме как умничать Вы ничего не умеете! Вы льете воду не одной реальной выкладки... Все похолду самоучки и нихрена не знаете, а пытаетесь прыгнуть выше своего потолка! Заметь я ниочем не утверждал хотел всего лишь узнать! Но вы незная ответа на вопрос, просто попытались выставить меня неучем! Хрен Вам! Учитесь сами, недоучки!
Классику знать надо! Ты наверное и Пушкина не читал, и считаешь верхом человека: обезьяну умеющую тыкать кнопки!!! |
Автор: Earnest 4.4.2007, 17:12 |
Ты уж не обижайся, но это полная чушь. В стеке живут только данные автоматических переменных, да и то, если они POD. А переменные еще бывают статические и динамические... Так что твой вопрос про модель данных означает "где хранятся данные", то ответ - любая: где разработчик пожелает, там и будут жить данные. И я тебя уверяю, что в Паскале и Яве тоже есть конструктор копии (а кто же по твоему, копии делает - Пушкин?), только программист этого не видит и никак не управляет... Добавлено @ 17:15 Модератор: archimed7592, sisbkoshup, не переходите не личности и не возбуждайтесь! |
Автор: archimed7592 4.4.2007, 17:17 |
гхм, а если они не POD, то где интересно? |
Автор: sisbkoshup 4.4.2007, 17:20 | ||
Я сейчас повешусь! Почему нет явного полиморфизма в С++? Посмотрите здесь!! http://www.math.rsu.ru/mexmat/miks/IT2/14_C++ClassesFirst.html |
Автор: archimed7592 4.4.2007, 17:21 |
да никто не возбуждается...просто когда некто, после наездов и грубостей за красивые глаза и знание цитат из ширли-мырли хочет получить консультацию, приходится объяснять ему где его место...обычно это делает модератор, но ты ограничилась только просьбой держать себя в руках... Добавлено через 2 минуты и 20 секунд я ща живот надорву... господин всезнайка, не просвятите, что такое явный полиморфизм... м.б. это тоже из ширли-мырли? |
Автор: sisbkoshup 4.4.2007, 17:28 | ||
В С++ полиморфизм работает(корректно) только для указателей на объект! Тогда когда объект помещается в динамическую память ручками!!! Учись недоучка! Почитайте то что найдете по ссылке и выскажите свое мнение!!! |
Автор: Sartorius 4.4.2007, 17:30 | ||
(Из ссылки sisbkoshup.) Автор статьи скоррее всего просто неточно формулирует свои мысли. (Там еще много мест, допускающих неоднозначное толкование) А то можно подумть , что все объекты на стеке размещаются. ЗЫ sisbkoshup, читай оригинальные работы Страуструпа и мануалы, а то такие преподы научат ![]() |
Автор: sisbkoshup 4.4.2007, 17:32 | ||||
Где ты считаешь они хранятся?
Конечно, доктор математических наук, который написал компилятор, по сравнению с Вами пацан! ![]() |
Автор: archimed7592 4.4.2007, 17:33 |
угу и про dynamic_cast<T&>(obj) всезнайка случайно забыл... другими словами работает ещё для ссылок (чем и являются твои "объекты" в java, objpascal) а не подскажешь в каких языках полиморфизм работает для самих объектов? может быть великий фильм ширли-мырли ещё и объяснил тебе КАК полиморфизм может работать для объектов? |
Автор: Earnest 4.4.2007, 17:35 | ||
Зависит от класса, естественно. Чаще всего в куче. Возьми, скажем string. Там внутри указатель на динамическую строку. При объявлении string автоматической переменной сами поля string, конечно, будут в стеке, а динамическая память останется динамической. А ведь это тоже данные string (которые нужно учитывать при конструировании копий). За вами успеешь, как же... sisbkoshup, полиморфизм в C++ есть, и даже два раза (времени выполнения и времени компиляции). И что значит "явный", интересно? Какую-нибудь конструкцию хочешь типа: explicit polymorhic class XXXYYY {} ? Кстати, для будущего математика ты как-то невнятно выражаешь свои мысли. Надо с этим бороться. И еще: если уж тебе так не нравится C++, насильно-то мил не будешь, чего упираться? Есть Жава и многие прочие - есть выбор... Это практически вопрос религии... Наезжая на С++, да еще так беспредметно, ты здесь понимания не найдешь... |
Автор: archimed7592 4.4.2007, 17:36 | ||
|
Автор: Sartorius 4.4.2007, 17:37 |
sisbkoshup, Earnest уже ответила на этот вопрос. Я повторю : все зависит от конкретного случая. Используя различные модификаторы класса памяти мы можем поместить объект на стек, в кучу или сегмент данных. Хотя она сказала, что на стеке хранятся только POD - ничего сказать не могу - не проверял. ИМХО и поля объектов там тоже размещаются |
Автор: Earnest 4.4.2007, 17:38 | ||
Оставьте в покое Ширли-Мырли - фильм ни в чем не виноват! ![]() Тебе уже сказали - где угодно. Добавлено через 3 минуты и 6 секунд
Но ведь он чушь написал. Или это относится к написанному им компилятору. Только не к С++. ![]() ![]() ![]() |
Автор: archimed7592 4.4.2007, 17:46 | ||
объект (даже не POD) хранится на стеке (если имеет автоматическое время жизни), а вот где хранятся объекты, которыми он "владеет" - это уже как удобнее разработчику будет (по тем же правилам: автоматические - на стеке, динамические - в куче и т. д.)... а конструктор копии для того и создан, чтобы такие вот моменты учитывать (ну или если поля содержат ссылки\указатели на другие поля того же объекта ![]() |
Автор: Earnest 4.4.2007, 17:46 |
Поля - да. Но поля != данные. Т.е. это еще не все данные. Динамически выделенная в классе память - разве не данные класса? |
Автор: sisbkoshup 4.4.2007, 17:46 |
Если мне кто-то раскажет как в Delphi или Java положить объект(именно поля объекта) на стек! Я соглашусь с тем что я незнаю программирования вообще, и уйду с этого форума! _____________________________ ![]() ![]() ![]() |
Автор: nerezus 4.4.2007, 17:50 | ||
Даже второкурсник(учащийся на программиста) это сможет сделать. |
Автор: archimed7592 4.4.2007, 17:51 |
sisbkoshup, ты наверное не слышал про такую конструкцию в objpascal'е, как object... так что программированию тебе ещё учиться и учиться... ![]() |
Автор: sisbkoshup 4.4.2007, 17:52 |
Выложите работающий код!!! |
Автор: Earnest 4.4.2007, 17:52 | ||
Что-то я не очень понимаю, как невозможность в Жаве создать объект в стеке связана с возможностями С++. Жаве - Жавино, у ней свои тараканы (и свой форум). В С++ - можно создать объект в стеке. А можно и не в стеке. Чего ты добиваешься-то? Добавлено через 38 секунд Чего код-то? |
Автор: JackYF 4.4.2007, 17:54 |
ну уж... только времени и изучения теории на это затратить можно... По-моему, перебор. |
Автор: archimed7592 4.4.2007, 17:56 | ||
что-то типа того...в паскале раньше разбирался получше тебя, но быстро понял, что язык _уже_ умер, что уж говорить о том, что с ним будет, когда я малость подрасту...так что мог уже забыть синтаксис, но идея наверное ясна... |
Автор: AndreyK 4.4.2007, 17:57 |
Про стек: как именно компилятор хранит данные это его внутреннее дело и не имеет никакого отношения к языку. А в С++ все данные хранятся в переменных (уж не знаю как такая модель называется). Разве, что в объектах тоже хранятся данные ... и если считать такое их хранение чем-то особенным и назвать эту модель объектной, тогда да в С++ обьектно ориентированная модель хранения данных. Особенно если учесть, что в извращенцы-теоретики рекомендуют отказаться от переменных и все данные хранить в объектах... |
Автор: archimed7592 4.4.2007, 17:58 |
и с такими объектами полиморфизм будет возможен тоже только через указатель, как и "тупом" с++ |
Автор: sisbkoshup 4.4.2007, 18:04 |
Я имелл ввиду объект класса! Но не важно как обещал более ниодного сообщения! Все равно в этом и есть отличие то что в С++ можно положить объект КЛАССА на стек! А в языках с ссылочной моделью нельзя! Всем спасибо! Считаю тему можно считать закрытой! И еще тому кто пытался оскорбить меня лично: вы бы так лицом к лицу общались! Досвидания! __________________ ![]() ![]() ![]() |
Автор: nerezus 4.4.2007, 18:07 | ||
|
Автор: Daevaorn 4.4.2007, 18:07 |
Прощай. Нам будет тебя нехватать... хнык-хнык... всегда мне нравились клоуны, но не нравится когда они уходят... |
Автор: Earnest 4.4.2007, 18:10 |
Ничего, время еще есть ![]() И не С++ же компилятор нужно написать, надеюсь... Так как аффтар удовлетворен, тему закрываю. И так много наболтали. ![]() |