|
Boost : |
From: Daniel Frey (daniel.frey_at_[hidden])
Date: 2002-02-13 09:54:43
Hello, world!
I searched the messages of the boost-group but couldn't find any
reference to 'final'. If it was discussed before, please gently point me
to the right message :)
By 'final', I mean a way to mark a class 'final' like in Java to prevent
others from deriving from that class. A simple solution of this is
something like this:
template< typename T > class finalize
{
friend T;
finalize() {}
};
class A : public virtual finalize< A > { ... };
class B : public A { ... };
...
A(); // OK
B(); // Compile-time error
This can probably be made easier by a #define for the user, but these
are all details. Generally, I'd like to know if it makes sense at all.
Is there any need for 'final' in C++ or is it a design-problem of my
class / application if I think I should mark a class 'final'? Does the
approach above yield any problems I haven't seen yet? Is there a better
way? Or is it a useful idea to be added to... say...
'boost/utility.hpp'?
Regards, Daniel
-- Daniel Frey aixigo AG - financial training, research and technology Schloß-Rahe-Straße 15, 52072 Aachen, Germany fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99 eMail: daniel.frey_at_[hidden], web: http://www.aixigo.de
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk