[fpc-other] Pascal interfaces is the same as multiple inheritance ?
Andrey Gusev
ag888 at rambler.ru
Thu Jan 24 15:37:05 CET 2008
I wish to introduce some additional (and general) functional to an
existing (and foreign) freepascal's unit.
With C++'s multiple inheritance quality it is easy to implement:
---
#include <stdio.h>
#include <list>
using namespace std;
class TObj {
protected:
int fff;
};
class TObj2: TObj {
protected:
int fff2;
};
class TIntf {
public:
virtual void ppp() = 0;
};
class TObji: public TIntf,TObj {
public:
virtual void ppp();
};
class TObj2i: public TObji,TObj2 {
public:
virtual void ppp();
};
void TObji::ppp()
{
printf("111 %p\n",this);
fff = 111;
}
void TObj2i::ppp()
{
printf("222 %p\n",this);
fff2 = 222;
TObji::ppp(); // like "inherited" in pascal
}
typedef list<TIntf*> myList;
int main(void)
{
myList l;
l.push_back(new TObji);
l.push_back(new TObj2i);
for (myList::iterator i = l.begin(); i != l.end(); ++i)
(*i)->ppp(); // general interface used
}
---
TObj,TObj2 - the basic classes from foreign module
TObji,TObj2i - my additional functional implementation
But i can't invent nothing like that (except the some procedural hack
with pointers substitution), in object pascal, with him interfaces!
Can somebody direct me to some object-style variant, maybe objfpc
relieve here (now i use delphi mode) ?
More information about the fpc-other
mailing list