On 09/28/2016 12:40 PM, Lars wrote:
Curious, where do corba interfaces come in handy ? When can you use them that object oriented code won't offer the same features?
For multiple inheritence, since fpc does not support multiple inheritence without interfaces. Interfaces are an addition to object oriented code, not separate from it.
In my particular case, in a project of mine in which I am drawing lattices, I have a concept of a node. Sometimes I want to draw that node myself using AGGPAS, and sometimes I want that node to itself be a Window/Widget, descending from fpGUI classes. If I'm using AGGPAS to draw the node, then I don't want the node to descend from fpGUI -- I use my own lighter-weight class hierarchy. So in order to be able to treat these two things the same, I define "enclosing node" as an interface. Now I can have classes descending from two (or more) different hierarchies, which both implement the enclosing node interface. I can write functions to do things with enclosing nodes, and get the benefits of polymorphism with multiple inheritence.
All that said, interfaces have their quirks and I wish we had more native support for multiple inheritence (also templates but that's another story) but anyway I'll take what I can get :-)
~David. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal