Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.52/120: Рейтинг темы: голосов - 120, средняя оценка - 4.52
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
1

Что такое инстанцирование?

07.04.2011, 08:21. Просмотров 23097. Ответов 32
Метки нет (Все метки)

C++
1
2
3
4
5
class A
{
 ...
};
A a; // Это уже инстанцирование A?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2011, 08:21
Ответы с готовыми решениями:

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из...

32
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
08.04.2011, 12:36  [ТС] 21
И вообще вы такого нагородили, что только запутали.
Инстанцирование (англ. instantiation) — создание экземпляра класса. В отличие от слова «создание», применяется не к объекту, а к классу. То есть, говорят: «(в виртуальной среде) создать экземпляр класса или инстанцировать класс». Порождающие шаблоны используют полиморфное инстанцирование.
(смотри вику). Вопрос всего лишь вот в чём: "Называется ли инстанцированием только создание экземпляра класса каким то не известным мне образом прописанное в коде самого класса, или декларация объекта подобная декларации обычной переменной, только с классом в качестве типа уже есть инстацирование?".

Добавлено через 2 минуты
Цитата Сообщение от ForEveR Посмотреть сообщение
Создание экземпляра класса, но не объекта.
Это синонимы, их нельзя противопоставлять. Объект есть экземпляр своего класса, экземпляр класса есть объект. А функции - не экземпляры.

Добавлено через 4 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
Т.е. пока не создан объект, нету и полей его.
Про статик поля забыл?

Добавлено через 4 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Например, у тебя есть указатель на шаблонный объект. Ты этот объект не создавал (он создан, например, где-то в недрах чужого кода), но инстанциация методов при компиляции твоего кода всё равно происходит.
А какая разница, кто создал? Объект уже создан, потом ты обращаешься к его полю. Что здесь особенного? Или если я миллион раз обращусь к одному и тому же своему объекту, то его класс тоже миллион раз инстанцируется?
0
Evg
Эксперт CАвтор FAQ
21115 / 8131 / 628
Регистрация: 30.03.2009
Сообщений: 22,447
Записей в блоге: 30
08.04.2011, 12:37 22
Цитата Сообщение от Mr.X Посмотреть сообщение
«Создание экземпляра класса» звучит двусмысленно
А в чём двусмысленность?
0
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
08.04.2011, 12:38 23
Цитата Сообщение от Mr.X Посмотреть сообщение
Я уж молчу про «методы»
И правильно молчите.) Методы в С++ есть.

Цитата Сообщение от Mr.X Посмотреть сообщение
«Создание экземпляра класса» звучит двусмысленно.
Как раз это звучит однозначно. А вот слово инстанцирование можно понять двояко, в зависимости от "шаблонного" контекста.

Добавлено через 59 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
Про статик поля забыл?
Каюсь. Забыл.)
0
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
08.04.2011, 12:44  [ТС] 24
Цитата Сообщение от Mr.X Посмотреть сообщение
«методы»... которых в C++ нет
Да ну?
Методом называется подпрограмма-член класса.
В c++ нет функций-членов класса? Или функции перестали быть подпрограммами?

Добавлено через 5 минут
Цитата Сообщение от Mr.X Посмотреть сообщение
а здесь на форуме какие-то наивные люди все время просят порекомендовать им учебники. Нет чтобы Википедию почитать.
А с каких это пор вика перестала отражать общепринятую точку зрения? Тема же о терминологии, а именно терминология по идее правильно общепринятая. Ведь в принципе любой термин - пустой звук, значение же ему назначают люди. Например, электрон мог бы называться хоть казитоном - достаточно, чтоб люди использовали это слово для его обозначения.
0
Эксперт С++
2328 / 1701 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
08.04.2011, 13:10 25
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, если сами пользователи языка не будут следить за чистотой терминологии, то больше этого делать будет некому.
Терминология нужна должна быть понятной большинству разработчиков. Любому разработчику понятно значение слов "метод" "поле". А произносить "функция-член", "данные-члены" лично у меня язык не поворачивается.
Цитата Сообщение от Mr.X Посмотреть сообщение
И тем более не стоит смешивать терминологию нескольких языков.
Смешивать не стоит, стоит использовать общепризнанную терминологию.
Цитата Сообщение от Mr.X Посмотреть сообщение
«Создание экземпляра класса» звучит двусмысленно.
Это как?
Цитата Сообщение от Mr.X Посмотреть сообщение
В C++ это всегда называлось созданием объекта.
И в других языках тоже. Это синонимы.
0
4194 / 1787 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
08.04.2011, 13:29  [ТС] 26
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Терминология нужна должна быть понятной большинству разработчиков. Любому разработчику понятно значение слов "метод" "поле". А произносить "функция-член", "данные-члены" лично у меня язык не поворачивается.
Полем как раз и называется данное-член, а методом - подпрограмма-член. Такой вариант тоже должен быть понятен любому девелоперу, но лично мне тоже удобнее "поле" и "метод". Причём, в делфях, например, есть ещё и процедуры-члены, они тоже являются классами и при этом там есть и функции-члены, но функция-член и процедура-член - не одно и тоже. Поэтому в разговоре с пасквилянтом я никогда не применю слово "метод" за исключением тех случаев, когда абсолютно не важно, возвращает ли метод вообще хоть какое то значение. То есть этим словом в разговоре с пасквилянтом я могу заменить слова "подпрограмма-челн", но не "функция-член" и не "процедура-член".
0
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
25.10.2011, 17:20 27
правильно ли я понял, что экземпляры класса могут по разному инстанцироваться, при этом они будут иметь разную архитектуру?
0
Эксперт С++
3209 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
26.10.2011, 08:24 28
хех! а почему я раньше эту тему не видел...
вставлю свои пять копеек.
подобная путаница в терминологии возникает довольно часто. и как правило, я не помню хоть одну подобную тему, которая закончилась бы однозначно.

кто-то там говорил про инстанцирование как про создания объекта, и отрицал тот факт, "ручная" специализация шаблона создает объекты. от части это справедливо. но давайте вспомним про метапрограммирование. там вообще нет объектов. все - типы.
и как бы вы назвали типы в данном контексте? объектами? инстансами?

Цитата Сообщение от besh
правильно ли я понял, что экземпляры класса могут по разному инстанцироваться, при этом они будут иметь разную архитектуру?
зависит от контекста в котором ты спрашиваешь.
0
шарпопочитатель
58 / 25 / 7
Регистрация: 31.01.2010
Сообщений: 1,030
17.01.2012, 21:46 29
Цитата Сообщение от Deviaphan Посмотреть сообщение
При том, что инстанцирование - создание экземпляра, а не типа.
а вроде это одно и тоже... в том плане что экземпляры это пользовательские типы
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
17.01.2012, 21:50 30
типы - это типы, экземпляры - это экземпляры. не надо их путать
в записи
C++
1
Х х;
Х - тип
х - экземпляр
0
шарпопочитатель
58 / 25 / 7
Регистрация: 31.01.2010
Сообщений: 1,030
17.01.2012, 22:13 31
retmas, а ну да... попутался...

вот цитата из книги про паттерны:"объекты создаются с помощью инстанцирования класса. Говорят, что объект является экземпляром класса. В процессе И. выделяется память для переменных экземпляра, и с этими данными ассоциируются данные. С помощью И. класса можно сделать много разных объектов-экземпляров. "

Добавлено через 5 минут
например есть супер популярный паттер синглтон. дык там поля(переменная) ссылочная. Которая указывает на созданный однажды экземпляр. Чтобы не допустить повторного создания, она проверяется... Название пишут как Instance(ну типо корень слова берут). То есть видимо тем самым подчеркивается факт инстанцирования. Хотя я бы называл инициализацией. Или инстанцирование это вид инициализации специфичный получается(ну например как в патерне этом)... ну короче если я неправ , завалите меня)))
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.01.2012, 22:15 32
ht1515, в с++ половина терминов не как у людей
0
шарпопочитатель
58 / 25 / 7
Регистрация: 31.01.2010
Сообщений: 1,030
18.01.2012, 19:14 33
короче врубился... сегодня как раз говорил с одним челом про это...
И. это тупо выделение памяти под объект класса(экземпляр).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2012, 19:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Что такое IIS и что такое PWS? Почему одно без другого не работает?
вот уже второй день пытаюсь немного разобраться в АСП. накидал небольшую тестовую страничку. но с...

Что такое напряжение и что такое сила тока с позиции заряженных частиц
Объясните пожалуйста, что такое напряжение и что такое сила тока с позиции заряженных частиц....

Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг...

Объект TDictionary. Что такое ключ и что такое значение?
Из прочитанного в гугле понял что это нечто наподобие какого-то словаря: Коллекция пар...

Что такое метод equals() и что такое класс Object
Ответи на два вопроса очень надо 1) Что такое метод equals(). Чем он отличается от операции ==....

Что такое токен? Что такое сессия? Отличия от куки
Что такое токен и сессии ? в чем отличия от куков ? Безопасно ли использовать куки? можно ли...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

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