|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander S. Usov 2:5020/400 05 Feb 2003 16:37:11 To : Aleksey Cheusov Subject : Re: 386SX and RedHat_8.0 -------------------------------------------------------------------------------- .ua> <s93znph6sn5.fsf@cheusov.scnsoft.com> <20030131211357.GB537@iv.nn.kiev.ua> .ua> <s93wukguida.fsf@cheusov.scnsoft.com> <20030204172200.GA377@iv.nn.kiev.ua> .ua> <s93k7gfupdp.fsf@cheusov.scnsoft.com> From: "Alexander S. Usov" <A.S.Usov@kvi.nl> Aleksey Cheusov wrote: class base { public: virtual void sayHello(char *prefix)=0; virtual ~base () {}; }; class derived: public base { public: derived (char *postfix) { post = strdup (postfix); } virtual ~derived () { free (post); } virtual void sayHello (char *prefix) { printf ("%s %s %s\n", prefix, "Hello", post); } private: char *post; }; int main () { base *c = new derived ("World"); c->sayHello ("All together:"); delete c; return 0; } >> пробовал - работало. В реальных классах надо переопределить. > > Приведи полный пример. > Я не могу сотворить ничего компилябельного. Абстрактный деструктор как-то не выходит. Его зовут в ~derived. >> Там требуется общий виртуальный деструктор, когда есть работа через указатель >> на абстрактный базовый класс, описывающий интерфейс. > > IMHO: получил, использовал, освободил. Освободил != Удалил. Так сделай сам. Ведь в COM ты это тоже сам делаеш. > Связь очень простая: > pure abstract classes без виртуального наследования > в обычных C++ реализациях обеспечивают > бинарную совместимость, причём делают интерфейс ОО и > дают возможность использовать интерфейсы другими языками. > template-based штучки (STL например) так не умеют. > (Речь шла о том, как "правильно" писать на C++) > И в этом я вижу преимущество. > > Микромягкий COM и все его надстройки > этим пользуется на полную катушку. Hу дак извини. Шаблонные штучки не используют vtable. В принципе в этом один из их плюсов. -- Best regards, Alexander. --- ifmail v.2.15dev5 * Origin: KVI (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6577b74ff4c0.html, оценка из 5, голосов 10
|