[vtk-developers] Multiple inheritance
Paul Douglas Hahn
pdhahn at compintensehpc.com
Mon Jul 2 17:04:59 EDT 2018
Just one caveat (you probably already know and agree with this). In my
experience using C++ multiple inheritance, I think you should try to
avoid situations where you have common base classes in the inheritance
pathways. Virtual base classes are the usual recommendation to resolve
certain problems that arise in such cases, but IMHO having experience
with that, I generally recommend against it.
So I recommend your base classes should be of the "_mix-in_" interface
category, not relaying on any common base class. The approach works fine
for me in almost every situation.
- Paul
On 07/02/2018 12:44 AM, Todd Martin via vtk-developers wrote:
> Single inheritance languages like Java and C# utilize /interfaces/
> extensively. Python 2.7+ handles the same concept with abstract base
> classes, ABCs.
>
> Is there any interest in supporting/interfaces/ in VTK via multiple
> inheritance from abstract classes (which do not inherit from
> vtkObject) while retaining the single inheritance model?
>
> In my view there are good reasons to do so. For example vtkCell has
> methods like GetNumberOfEdges(), GetEdge(), GetNumberOfFaces(),
> GetFace() etc. which really only apply to multi-dimensional cells
> (both linear and non-linear); i.e. not points and lines. These methods
> are forced on the base class design by a single inheritance structure
> and the linear/non-linear cell sub-types. In my view it would be
> better if they were distributed across the sub-classes via the concept
> of interfaces. So I'm suggesting a limited use of multiple inheritance
> here, not a free-for-all approach. What do others think about this?
>
> For an example please see this merge request Add missing size hints
> and bug fix point arrays for non-linear cells (!4372) · Merge Requests
> · VTK / VTK <https://gitlab.kitware.com/vtk/vtk/merge_requests/4372>
>
>
>
>
>
>
>
>
> Add missing size hints and bug fix point arrays for non-linear
> cells (!4...
>
> I've added size hints for concrete public methods
> GetParametricCoords(), GetEdgePoints() and GetFacePoints() in ...
>
> <https://gitlab.kitware.com/vtk/vtk/merge_requests/4372>
>
>
>
> Todd Martin, PhD.
> /Freelance Engineer/Software Architect./
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Search the list archives at: http://markmail.org/search/?q=vtk-developers
>
> Follow this link to subscribe/unsubscribe:
> https://public.kitware.com/mailman/listinfo/vtk-developers
>
--
Paul D. Hahn
CompIntense HPC, LLC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtk-developers/attachments/20180702/f9dfdd93/attachment-0001.html>
More information about the vtk-developers
mailing list