![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Fazil6 |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
насколько я помню =, [] , -> и () должны быть членами класса Добавлено @ 00:00
точнее в списке инициализации. статические константы интегрального типа можно инициализировать в месте объявления(не уверен, что в стандарте это есть, но MS позволяет)
|
||||||
|
|||||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
в порядке объявления в класе. Порядок в списке инициализации компиллятору до лампады - т.е. пофигу. |
|||
|
||||
| Vyacheslav |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Правильно, но с точностью наоборот ptr - это указатель на экземляр класса CMyClass. То есть CMyClass* ptr это не указатель на CMyClass, а указатель на объект класса CMyClass. Так что, указатель на объект - это всегда пожалуйста, а вот указатель на класс - низззя. Указатель на класс- это вопрос метапрограмирования. которое поддерживают некоторые языки : Delphi с его class of или C# c его классом Type и typeof
AnyObj - переменная, которая может ссылаться на любой класс. именно класс, а не объект
или особенности расширения компиляторов, например С++Builder, где правомерно записать такую фичу
Ну и хелп по этому поводу
Но это __classid , сами понимаете, out scope стандарта. -------------------- С уважением, Вячеслав Ермолаев |
||||||||
|
|||||||||
| The Thing |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Всем большое спасибо!
Столько сообщений, что не успеваю все их сразу обработать. Мне ужасно стыдно. У меня скопилось огромное количество вопросов, я не спешу все их задавать потому как не дождусь, когда пойду домой и перечитаю еще раз "Основы ООП". Некоторые все даки задам.
Я много сегодня прочел про вуиртуальную таблицу.. Если я правильно задаю вопрос. Где можно поближе познакомиться с ней.(урл) Мне честно говоря непонятна фраза "...перегрузки операций как методов класса..." и "..внешним образом от перегрузки как метода класса..". Я подразумеваю, что просто не сталкивался с этим поэтому и не понимаю (хотя я и пользовался перегрузкой, но никак ее не классифицировал).. опять же направьте меня плз. или кусочек бы кода...(я думаю не один я недопонимаю..) А можно ссылочку на описание реализации паттерна "синглетон"? (стандартные запросы в поисковике в течение 10 минут ничего не дали Не совсем понял. А что тогда? Где можно подробно почитать про конструкторы и функции преобразования. То что я читал все даки немного не то.
Я так и написал.. все кроме стандартных, а в скобочках перечислил стандартные. Добавлено @ 14:24
Вопрос. А какие еще перегрузки могут быть? Я только такие и знаю. Добавлено @ 14:26 Во! Я помню что читал именно так. И удивился когда меня опровергнули! -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
||||||
|
|||||||
| Earnest |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Все просто: скажем, оператор + для класса CMyClass можно перегрузить 2 способами: 1) как внешнюю функцию, т.е. где угодно пишем
Насчет указателя на класс... по-моему это словоблудие... В моем понимании "указатель на тип" == "указатель на какой-нибудь объект типа", т.е. это тоже тип. И короче. Ясно, что указателя на класс в том же смысле, как указатель на объект не бывает. Но речь шла об "объявить". Объявить можно тип, можно переменную. Но не буду спорить - может, в нынешних учебниках так переводят, чтобы не ввводить двусмысленности. -------------------- ... |
||||||||
|
|||||||||
| SergeCpp |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
ISO/IEC 14882:2003(E) — 8.3.1 Pointers
ISO/IEC 14882:2003(E) — 9 Classes
Это сообщение отредактировал(а) SergeCpp - 15.2.2007, 15:35 |
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
|
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Singleton pattern
Одиночка (шаблон проектирования) P.S.
Рекомендую составлять запросы к поисковику (Google, к примеру) вот в такой вот форме: <незнакомый термин> wiki к примеру, singleton wiki или же, virtual table wiki Это сообщение отредактировал(а) SergeCpp - 15.2.2007, 15:56 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
||||
|
||||
| The Thing |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: нет Всего: 3 |
Спасибо за ссылки!
Спасибо! Я понял. Где можно подробно почитать про конструкторы и функции преобразования? -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
| KelTron |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: нет Всего: 38 |
Наверно красивее будет: объект - это экземпляр класса Это когда в классе А содержится объект(ы) класса В, и при этом класс А отвечает за создание и уничтожение объектов класса В. Причем Класс А использует объекты класса В. Не путать с агрегацией где объект класса В являлся бы частью класса А. Агрегация - колесо в машине: машина не машина без колеса, композиция - машина в гараже: гараж без машины вполне работоспособен - здесь как создание и уничтожение понимается, что машина въехала в гараж, и выехала из него. В общем что то подобное, надеюсь надеюсь что я смог показать разницу. Оно используется например при перегрузке оператора =:
Нет, определение не обязательно как метод, она определятся также как если бы была не дружественной. Просто в классе для которого она будет дружественной она объявляется со словом friend, а определение(или точнее способ определения) ее никак не изменится.
Вобщем ответ - да Например:
Что то в этом роде Это сообщение отредактировал(а) KelTron - 16.2.2007, 17:09 -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||||
|
|||||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Это не двусмысленность. И говорить "указатель на класс" вместо "указатель на обЪект класса " просто жаргонное соглашение. Кстати Вас на слове можно поймать
То есть из этих слов следует, "что указатель на класс "( один тип -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| SerpentVV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 27.11.2006 Где: Астрахань Репутация: 1 Всего: 1 |
Ребятки, я как автор вопросов, прошу написать все неясности...
Один копрос я уже понял - вызывает вопросы: Указатель на класс и указатель на объект - не совсем корректно сформулировано... Я имел ввиду, что указатель может указывать только на объект на объект и не может указывать на класс... Вопросы - из книжки по ООП на С++, которая, надеюсь, выйдет в этом годе в издательстве Питер... По порядку в точности соответствуют порядку изложения... |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
SerpentVV,
Кстати про массив классов, на который предполагается ответ - нет. Не боитесь, что Вам в качестве ответа приведут концепцию списка типов, предложенную Александреску? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Здесь вопрос не о том как говориться, а что подразумевается. И стандарт, по моему, вполне однозначно это определяет 3.9.2 абзац 3
Указатель на объект типа T обозначается как "указатель на T" . Так что автор зря переживает. Вопрос сформулирован вполне однозначно -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |