Why is AbstractFunctionDeclaration not a Declaration? Why is ClassFunctionDeclaration not a FunctionDeclaration?
David Nolden
zwabel at googlemail.com
Mon Mar 1 15:15:04 UTC 2010
Am Montag 01 März 2010 16:01:56 schrieb Milian Wolff:
> Hey all, esp. David!
>
> Is there any reason why an AbstractFunctionDeclaration does not inherit
> from Declaration? And why is a ClassFunctionDeclaration only an
> AbstractFunctionDeclaration, but not a normal FunctionDeclaration?
>
> I find that rather unintuitive and makes my code harder since I cannot use
> simple polymorphie to handle methods and functions (in my case no
> difference) in one go...
>
> Anything against me changing that?
This cannot be changed, due to multiple inheritance.
A ClassFunctionDeclaration inherits ClassMemberDeclaration as well as
AbstractFunctionDeclaration, and a FunctionDeclaration inherits Declaration
and AbstractFunctionDeclaration.
"Declaration" must be only once in the whole inheritance chain, and for that
reason AbstractFunctionDeclaration is a pure abstract class that is just
"added" to FunctionDeclaration and ClassFunctionDeclaration. The only other
option would be making ClassMemberDeclaration such an abstract class, but that
would be a rather useless change.
More information about the KDevelop-devel
mailing list