[fpc-devel] Abstract functons with parameters on classes

ik idokan at gmail.com
Thu Jul 27 21:15:18 CEST 2006


On 7/27/06, Peter Vreman <peter at freepascal.org> wrote:
> > On 7/27/06, Jonas Maebe <jonas.maebe at elis.ugent.be> wrote:
> >>
> >> On 27 Jul 2006, at 17:49, ik wrote:
> >>
> >> > The issue is that TA is an abstract class, while TA2 and anything else
> >> > will inherit this class, but will implement different things/ways of
> >> > things ... so the "fnc" function will need a different structure on
> >> > each class.
> >>
> >> What is the use of having an abstract fnc in the base class? I don't
> >> understand what you want to do. For calling these differently
> >> structured "overloads" you have to typecast your class to TA2 or so
> >> anyway, unless you declare all these variants also as virtual
> >> abstract methods in your base class (in which case your problem is
> >> immediately solved, but I don't really see the use of that because
> >> you can't have generic code when calling any of these methods anyway).
> >
> > My wish to to make sure that the classes have the same function names,
> > that only it's parameters are different depending on the need ....
> >
>
> That is ofcourse not possible because if you call a (virtual) method of TA
> then the doesn't know anything about TA2. That is how the object model
> works. You know things of the parent classes. But a parent class doesn't
> know anything about it's children.
>
OK, now I understand that I was not clear enough ;)

Assume I have the same API calls for different things in classes, and
the only difference me as someone who uses this API is to use the
right class, but all of the other code is not changed, except specific
calls ...

Now I know that Parent do not know anything about a child, but can I
make it "virtual" in the way the parameters is created in the child
way, and do it as part of the abstract ?

As I understand from previous knowledge and from your answer, it it
impossible ... I guess I will have to wait for templates in order to
have such way ... until then I will not use abstract declaration of
such functions at all...

Thanks,

Ido



More information about the fpc-devel mailing list