![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Chaos A.D. |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 16.1.2005 Где: 09 RUS Репутация: 6 Всего: 7 |
У меня несколько классов. Ну, скажем, абстрактный Foo в файле Foo.h; Bar и Banana, наследующие гомоморфный интерфейс у Foo. Они лежат в Foo.cpp. Их создает производящая функция. Также есть мой пул памяти. Примерный инрефейс можно обрисовать так:
Если перегрузить оператор new в базовом Foo к примеру таким образом:
при выполнении кода, похожего на этот: new(my_mega_pool) Banana; вызывается сразу оба оператора. Почему? Проблему я устранил, убрав перегрузку из моего аналога классу Foo, и инкапсулировав ее в файле Foo.cpp, перегрузив эти операторы у нового класса RealFoo. Тоже абстрактного. В свою очередь, Bar и Banana теперь наследовали у меня RealFoo. Таким образом все заработало как надо. Но почему нельзя было перегрузить эти операторы у Foo? --------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Ну дак как? Никто не поможет?
|
|||
|
||||
| chaos |
|
||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
PS и вообще советую почитать книгу http://anatolix.naumen.ru/Books/CPlusPlus?v=fvi Jeff Alger (Джефф Элджер) C++ for Real programmers (C++ Библиотека программиста) Эта книга заслуживает внимания всех программистов С++!!! Это сообщение отредактировал(а) chaos - 20.5.2005, 07:18 |
||||||
|
|||||||
| Chaos A.D. |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 16.1.2005 Где: 09 RUS Репутация: 6 Всего: 7 |
Может я очень непонятливый, но по моему это не совсем то, о чем я спрашивал. У меня вроде итак перегружен оператор new только в одном классе. И его действие распрастраняется на все остальные производные классы. Ну а так как класс Foo у меня абстрактный, для него оператор new никогда не вызывается. Только для RealFoo.
А книгу ту я читал. Тоже присоединяюсь к твоему жирному совету. Книга действительно не плохая. Это сообщение отредактировал(а) Chaos A.D. - 20.5.2005, 19:58 --------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
дай тогда кода побольше, посмотреть хоть че там у тебя
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |