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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 102, средняя оценка - 4.94
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

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

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

C++
1
2
3
4
5
class A
{
 ...
};
A a; // Это уже инстанцирование A?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2011, 08:21     Что такое инстанцирование?
Посмотрите здесь:

Инстанцирование шаблона - C++
Существует шаблон следующего вида: template<class T, int size> void foo(T (&array)) { cout << size << endl; } И следующий...

Инстанцирование шаблона - C++
Есть шаблонная очередь с использованием vector Как инстанцировать для своего класса, представляющего строку, изготовленную из...

Инстанцирование шаблонного класса - C++
Уважаемые форумчане! Помогите в не сложном, как я полагаю, для Вас вопросе. Имеется шаблонный класс-контейнер оформленный в виде модуля...

Инстанцирование шаблона во время выполнения - C++
Добрый вечер! Компилятор требует константное выражение передаваемое в шаблон, как это можно обойти? мб с помощью каких то заклинаний над...

Инстанцирование шаблона для различных типов - C++
Помогите пожалуйста с программой... Нужно создать шаблон класса, для работы со структурой произвольного типа данных. В функции main()...

Можно ли инстанцирование класса прописать в самом классе? - C++
Можно ли инстанцирование класса прописать в самом классе?

Что такое TPoint, как пользоваться и что подставлять. - C++ Builder
function WindowFromPoint( Point: TPoint ): HWND; есть функция, обьясните пожалуйста или дайте чтото почитать, гугл юзал не нашел, что...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.04.2011, 12:36  [ТС]     Что такое инстанцирование? #21
И вообще вы такого нагородили, что только запутали.
Инстанцирование (англ. instantiation) — создание экземпляра класса. В отличие от слова «создание», применяется не к объекту, а к классу. То есть, говорят: «(в виртуальной среде) создать экземпляр класса или инстанцировать класс». Порождающие шаблоны используют полиморфное инстанцирование.
(смотри вику). Вопрос всего лишь вот в чём: "Называется ли инстанцированием только создание экземпляра класса каким то не известным мне образом прописанное в коде самого класса, или декларация объекта подобная декларации обычной переменной, только с классом в качестве типа уже есть инстацирование?".

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

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

Добавлено через 4 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Например, у тебя есть указатель на шаблонный объект. Ты этот объект не создавал (он создан, например, где-то в недрах чужого кода), но инстанциация методов при компиляции твоего кода всё равно происходит.
А какая разница, кто создал? Объект уже создан, потом ты обращаешься к его полю. Что здесь особенного? Или если я миллион раз обращусь к одному и тому же своему объекту, то его класс тоже миллион раз инстанцируется?
Evg
Эксперт CАвтор FAQ
17471 / 5709 / 363
Регистрация: 30.03.2009
Сообщений: 15,677
Записей в блоге: 26
08.04.2011, 12:37     Что такое инстанцирование? #22
Цитата Сообщение от Mr.X Посмотреть сообщение
«Создание экземпляра класса» звучит двусмысленно
А в чём двусмысленность?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
08.04.2011, 12:38     Что такое инстанцирование? #23
Цитата Сообщение от Mr.X Посмотреть сообщение
Я уж молчу про «методы»
И правильно молчите.) Методы в С++ есть.

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

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

Добавлено через 5 минут
Цитата Сообщение от Mr.X Посмотреть сообщение
а здесь на форуме какие-то наивные люди все время просят порекомендовать им учебники. Нет чтобы Википедию почитать.
А с каких это пор вика перестала отражать общепринятую точку зрения? Тема же о терминологии, а именно терминология по идее правильно общепринятая. Ведь в принципе любой термин - пустой звук, значение же ему назначают люди. Например, электрон мог бы называться хоть казитоном - достаточно, чтоб люди использовали это слово для его обозначения.
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
08.04.2011, 13:10     Что такое инстанцирование? #25
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, если сами пользователи языка не будут следить за чистотой терминологии, то больше этого делать будет некому.
Терминология нужна должна быть понятной большинству разработчиков. Любому разработчику понятно значение слов "метод" "поле". А произносить "функция-член", "данные-члены" лично у меня язык не поворачивается.
Цитата Сообщение от Mr.X Посмотреть сообщение
И тем более не стоит смешивать терминологию нескольких языков.
Смешивать не стоит, стоит использовать общепризнанную терминологию.
Цитата Сообщение от Mr.X Посмотреть сообщение
«Создание экземпляра класса» звучит двусмысленно.
Это как?
Цитата Сообщение от Mr.X Посмотреть сообщение
В C++ это всегда называлось созданием объекта.
И в других языках тоже. Это синонимы.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
08.04.2011, 13:29  [ТС]     Что такое инстанцирование? #26
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Терминология нужна должна быть понятной большинству разработчиков. Любому разработчику понятно значение слов "метод" "поле". А произносить "функция-член", "данные-члены" лично у меня язык не поворачивается.
Полем как раз и называется данное-член, а методом - подпрограмма-член. Такой вариант тоже должен быть понятен любому девелоперу, но лично мне тоже удобнее "поле" и "метод". Причём, в делфях, например, есть ещё и процедуры-члены, они тоже являются классами и при этом там есть и функции-члены, но функция-член и процедура-член - не одно и тоже. Поэтому в разговоре с пасквилянтом я никогда не применю слово "метод" за исключением тех случаев, когда абсолютно не важно, возвращает ли метод вообще хоть какое то значение. То есть этим словом в разговоре с пасквилянтом я могу заменить слова "подпрограмма-челн", но не "функция-член" и не "процедура-член".
besh]<a
13 / 11 / 1
Регистрация: 02.11.2009
Сообщений: 194
25.10.2011, 17:20     Что такое инстанцирование? #27
правильно ли я понял, что экземпляры класса могут по разному инстанцироваться, при этом они будут иметь разную архитектуру?
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
26.10.2011, 08:24     Что такое инстанцирование? #28
хех! а почему я раньше эту тему не видел...
вставлю свои пять копеек.
подобная путаница в терминологии возникает довольно часто. и как правило, я не помню хоть одну подобную тему, которая закончилась бы однозначно.

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

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

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

Добавлено через 5 минут
например есть супер популярный паттер синглтон. дык там поля(переменная) ссылочная. Которая указывает на созданный однажды экземпляр. Чтобы не допустить повторного создания, она проверяется... Название пишут как Instance(ну типо корень слова берут). То есть видимо тем самым подчеркивается факт инстанцирования. Хотя я бы называл инициализацией. Или инстанцирование это вид инициализации специфичный получается(ну например как в патерне этом)... ну короче если я неправ , завалите меня)))
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
17.01.2012, 22:15     Что такое инстанцирование? #32
ht1515, в с++ половина терминов не как у людей
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 19:14     Что такое инстанцирование?
Еще ссылки по теме:

что такое {;} ? - C++ Builder
Подскажите пожалуйста что значит вот это {;} Добавлено через 32 секунды в этом коде: #include &lt;vcl.h&gt; #pragma hdrstop ...

Что такое 1L? - C++ Builder
Приходится разбираться в чужом коде. Сначала была не понятна эта строчка: double v = 0L; Но погуглив, я узнала, что 0L - это некое...

Что такое COM+? - C++ COM
Не знал в каком разделе задать данный вопрос, поэтому товарищи модераторы, если что - извините :) Может кто-нибудь доступным для новичка...

Что такое char* ? - C++
char* szString = &quot;Randy&quot;; Объясните, чем в данном случае является szString? Если это указатель, то почему ему напрямую можно...

что такое hex - C++
Здравствуйте вообщем возник вопрос что такое hex и как он работает. У меня была простая программка BitTest - инициируются две переменные и...


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

Или воспользуйтесь поиском по форуму:
ht1515
шарпопочитатель
58 / 25 / 1
Регистрация: 31.01.2010
Сообщений: 950
18.01.2012, 19:14     Что такое инстанцирование? #33
короче врубился... сегодня как раз говорил с одним челом про это...
И. это тупо выделение памяти под объект класса(экземпляр).
Yandex
Объявления
18.01.2012, 19:14     Что такое инстанцирование?
Ответ Создать тему
Опции темы

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