Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 87, средняя оценка - 4.85
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
#1

Разница между объектом и экземпляром класса - C++

02.03.2013, 21:34. Просмотров 14080. Ответов 142
Метки нет (Все метки)

Можете объяснить какая между этими понятиями разница?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разница между объектом и экземпляром класса (C++):

Какая разница между eof и просто объектом? - C++
То есть предположим открыли файл и объект input подставили в условие while и внутри считываем строки с файла с помощью getline. Так вот...

В чем разница между классом и шаблоном класса? - C++
Помогите ответить. В чем разница между классом и шаблоном класса?

Ошибка при работе с объектом класса в конструкторе другого класса - C++
Имеется данный код: https://github.com/ubelian/glgame/tree/master/glgame В файле Food.cpp в конструкторе класса Food::Food() на 19...

Создание объекта класса с полем являющимся объектом другого класса - C++
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Вызов объектом базового класса функцию из производного класса! - C++
Как можно осуществить вызов или передачу значения в базовый класс для дальнейшего вычисления этого значения в производном классе. Вот...

Почему при компилировании программы со вторым экземпляром класса изменяются значения первого? - C++
Здравствуйте. Вопрос: почему при компилировании программы со вторым экземпляром класса изменяются значения первого? namespace SALES { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
02.03.2013, 22:47 #16
Прочитав это, я подумал, возможно этот вопрос, был тест на сообразительность?
Скорее на убеждение и веру в собственные силы и способность отстоять собственную точку зрения.
P.S. А может там над вами психологические тесты ставят !
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
02.03.2013, 22:59 #17
Если вопрос звучал именно так (т.е. не объект класса, а просто объект), то в ООП все есть объект, т.е. int i это тоже объект, а экземпляр класса - это уже более узкое понятие.

Добавлено через 2 минуты
Хотя об эту терминологию мозги сломать можно.
В С++ зашел спор о термине - открыл Стандарт, прочитал Истину.
В ООП зашел спор о термине - нашел книгу 1500 страниц, где 2 профессора выясняют что же значит "инкапсуляция", правильным считается мнение более авторитетного профессора, истину не знает никто
5
daslex
1271 / 516 / 106
Регистрация: 02.08.2011
Сообщений: 2,678
02.03.2013, 23:49 #18
Если так можно говорить:
=================
Экземпляр класса абсолютно всегда принадлежит подмножеству каких-либо объектов,
Объект Не всегда принадлежит подмножеству каких бы то ни было экземпляров классов (не объект класса)
=================
то высказывание, что это всё это одно == парадокс.

Почти как в Библии:
Сначала было слово и слово было Объект.Дальше появился первый экземпляр, порожденный объектом, потом второй...., потом баги пошли.
4
ghostxx7
0 / 0 / 0
Регистрация: 23.07.2014
Сообщений: 4
23.07.2014, 18:59 #19
Технически это разные вещи. Экземпляр класса содержит в себе только не статические поля, а объект содержит методы и статические поля.
0
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
24.07.2014, 00:15 #20
Цитата Сообщение от The_bolT Посмотреть сообщение
Можете объяснить какая между этими понятиями разница?
В том, что "объект" - это официальный термин C++ из стандарта и учебников, а "экземпляр" - слово-паразит, применяемое дилетантами, теми, которые инициализируют переменные в теле конструктора.
Страуструп определяет объект как область памяти компьютера, хранящую данные заданного типа.
Цитата Сообщение от The_bolT Посмотреть сообщение
когда нас в универе спросили какая между ними разница я засомнивався
Блин! А меня все время интересовало откуда идет это загаживание терминологии. Оказывается вот где рассадник невежества.
Цитата Сообщение от egor2116 Посмотреть сообщение
Интересно что скажут проФФессора из универа.
Как заметил Чехов, умный любит учиться, а дурак учить. Смысл слушать «профессоров»? Лучше книжки толковые почитать.
Мне кажется, люди делятся на два непересекающихся класса. Одни придерживаются терминологии стандарта и учебников, написанных толковыми авторами, а другие – вычитанного в интернете, на заборе, почерпнутого у «профессоров». Часто такие люди заменяют непрочитанное своими фантазиями, в этой теме очень яркие примеры – сообщения №18 и 19.
3
ghostxx7
0 / 0 / 0
Регистрация: 23.07.2014
Сообщений: 4
24.07.2014, 00:24 #21
Я ответил базируясь на знаниях языка C# возможно в С++ данные понятия различны. Но мой ответ довольно точный это не моя фантазия, могу привести примеры и иллюстрации с объяснением.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.07.2014, 00:38 #22
Цитата Сообщение от ghostxx7 Посмотреть сообщение
могу привести примеры и иллюстрации с объяснением
Жги. Только в теме С++, плюсовые примеры.
0
ghostxx7
0 / 0 / 0
Регистрация: 23.07.2014
Сообщений: 4
24.07.2014, 01:01 #23
Ещё раз повторюсь что объясню какая разница между объектом и экземпляром класса в C#. Всё дело в том как работает память(точнее куча).
C#
1
2
3
4
5
6
MyClass obj1 = new MyClass (); 
MyClass obj2 = new MyClass ();
obj1.field=2;
obj2.field=10;
obj1.Method();
obj2.Method();
В первой строке как и во второй в памяти выделяется место. Создается 2 экземпляра класса. Но Method() у этих экземпляров один (сделано специально для экономии памяти). Так вот именно объект содержит Method(), а экземпляр содержит field. Между экземпляром и объектом есть свои ссылки.
Нашёл более наглядное объяснение:

Кликните здесь для просмотра всего текста


примерно с 50-й минуты объяснение именно этого вопроса.
0
Vourhey
Почетный модератор
6481 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.07.2014, 01:04 #24
Цитата Сообщение от ghostxx7 Посмотреть сообщение
Ещё раз повторюсь что объясню какая разница между объектом и экземпляром класса в C#
Нафига ты это делаешь в разделе С++?
Цитата Сообщение от ghostxx7 Посмотреть сообщение
Так вот именно объект содержит Method()
Объект не содержит никаких методов.
Цитата Сообщение от ghostxx7 Посмотреть сообщение
Между экземпляром и объектом есть свои ссылки.
экземпляр = объект
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.07.2014, 01:18 #25
Цитата Сообщение от ghostxx7 Посмотреть сообщение
Ещё раз повторюсь что объясню какая разница между объектом и экземпляром класса в C#.
источник?

Добавлено через 1 минуту
Цитата Сообщение от ghostxx7 Посмотреть сообщение
примерно с 50-й минуты
видеоуроки оставьте себе. ссылайтесь на рихтера, троельсона и прочих авторитетных товарищей
1
ghostxx7
0 / 0 / 0
Регистрация: 23.07.2014
Сообщений: 4
24.07.2014, 01:24 #26
Согласен, надо ссылаться на первоисточник тогда не будет такого бардака в голове и на форумах.
0
Vourhey
24.07.2014, 01:35
  #27

Не по теме:

Цитата Сообщение от ghostxx7 Посмотреть сообщение
Согласен, надо ссылаться на первоисточник тогда не будет такого бардака в голове и на форумах.
Ты бы хоть в официальную документацию на сайте MS заглянул в качестве первоисточника:
A program may create many objects of the same class. Objects are also called instances,
Objects are also called instances
http://msdn.microsoft.com/en-us/library/ms173110.aspx
Надеюсь, переводить не нужно.

1
Psilon
Master of Orion
Эксперт .NET
5891 / 4788 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
24.07.2014, 02:07 #28
Цитата Сообщение от Mr.X Посмотреть сообщение
Блин! А меня все время интересовало откуда идет это загаживание терминологии. Оказывается вот где рассадник невежества.
Термин экземпляр класса (он же Instance, как выше написали) зачастую используется во вполне серьезной документации. Если в натуральном языке есть слова "отлично" и "замечательно", которые взаимозаменяемы, это не повод называть всех, кто говорит "отлично" вместо "замечательно" - невежами

Невежество в вопросах а-ля "а в чем между ними разница" и напускание тумана "а вы подумайте сами".
4
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
24.07.2014, 10:01 #29
Цитата Сообщение от egor2116 Посмотреть сообщение
разница между машиной и автомобилем
Меня всегда убивал термин "автомашина".

Цитата Сообщение от Vourhey Посмотреть сообщение
Объект не содержит никаких методов.
Указатели на физическое размещение в памяти этих методов наверное имелось в виду.

Цитата Сообщение от daslex Посмотреть сообщение
Сначала было слово и слово было Объект.Дальше появился первый экземпляр, порожденный объектом, потом второй...., потом баги пошли.
Сначала были скрижали с описанием объекта. По образу и подобию описанного в них появился первый экземпляр, порожденный конструктором, потом второй...., потом баги пошли.


В общем итог темы: разница между объектом и экземпляром класса в том, что хрен его знает трудностях перевода.
1
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
24.07.2014, 10:08 #30
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Указатели на физическое размещение в памяти этих методов наверное имелось в виду.
даже этого нет. В С++, например, все методы глобальные и скрыто (от программиста) принимают указатель на вызывающий объект первым параметром. В Java объект тоже не содержит адресов методов, там наоборот методы содержат указатели (ссылки) на нужные данные (там метод это объект на уровне С++). В C# думаю похожая технология.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2014, 10:08
Привет! Вот еще темы с ответами:

Возврат значения объектом класса - C++
Может ли экземпляр класса возвращать значение своего поля без обращения к полю напрямую например class MyClass { int val = 5;...

Действие над объектом класса выполняет: - C++
Кому не сложно, помогите с тестом :)

Задача на строки, с объектом класса string - C++
Дано осмысленное текстовое сообщение, разделенное пробелами и знаками препинания, в конце ставится точка. Поменять слова в сообщении по...

Конструктор с параметром-объектом того же класса - C++
Была поставлена задача: определить конструктор с параметром-объектом того же класса, но я совсем не понимаю, что от меня требуется?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.07.2014, 10:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru