No, none of my roles are abstract base classes, they all provide additional functionality. Role::App reads the config file, creates objects based on its contents, and provides methods for fetching these objects.
Anyway, I can't see how a class which inherits from another class (or a role) could be called an abstract base class - it's not at the base. But perhaps you are using a different definition.
| [reply] |
| [reply] |
Ok, then it's clear we are using a different definitions of "abstract base class". You include classes which provide functionality in your definition, I do not. I don't think the Moose documentation you referenced supports your usage.
| [reply] |
| [reply] |
Thanks for those definitions.
This statement:
In CeePlusPlus, a class that has any PureVirtual member functions is an abstract base class.
seems to suggest that, at least for C++, an abstract base class is the same as an abstract class.
However, I still think it's clear that while all Moose roles are abstract classes (they cannot be instantiated), only those Moose roles which do nothing more than list 'requires' are abstract base classes. None of the Moose roles I am using are abstract base classes.
Update:
Having read more about the "interface role", I've changed my mind. What I called an abstract base class above is really an interface-only role. Arunbear recognized this in the beginning. I don't have any of these in my real code.
| [reply] |