[quote="LGL"]ситуация такая:
class MyClass
{
AnsiString name]
class MyClass
{
AnsiString name;
virtual AnsiString MyFunction();
MyClass* next;
};
----------
class c2 : public MyClass {
};
AnsiString c2 :: MyFunction() {
return "ХЗЧ";
};
--------------------
переопределение функции
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Можно сделать так, как предоложил ДиДжей, но тогда придётся создавать столько разных классов-наследников, сколько нужно иметь разных виртуальных методов. Есть другой вариант. Класс должен хранить указатель на функцию, которая будет устанавливаться кем-то снаружи. Этой функции будет передаваться указатель на класс. Таким образом проблему множества классов сведём к проблеме множества функций.
P.S. Это всё теоретические рассуждения. А если посмотреть с логической точки зрения - то всё это приличный изврат. Я считаю, что проблема надумана и можно всё сделать намного проще.
P.S. Это всё теоретические рассуждения. А если посмотреть с логической точки зрения - то всё это приличный изврат. Я считаю, что проблема надумана и можно всё сделать намного проще.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Моё мнение что предложение Ромео изящнее ДиДжейского, и при правильно реализации будет красиво работать. Но всё таки зачем это надо??? Может обойтись конструкцией switch-case, добавивь исчо одно поле в класс???