Ref T709 Prevent instantiation of CXSwiftBusSettingsQtFree, to avoid slicing.

- Constructors and destructor are protected.
- Therefore destructor doesn't need to be virtual.
- objectUpdated is pure virtual, so the class is abstract.
- Both derived classes are declared final.
This commit is contained in:
Mat Sutcliffe
2019-08-12 22:39:14 +01:00
parent 2e571b72fd
commit 349da3633b
4 changed files with 11 additions and 14 deletions

View File

@@ -27,7 +27,7 @@ namespace BlackMisc
namespace Settings
{
//! XSwiftBus settings
class BLACKMISC_EXPORT CXSwiftBusSettings :
class BLACKMISC_EXPORT CXSwiftBusSettings final :
public CValueObject<CXSwiftBusSettings>,
public CXSwiftBusSettingsQtFree,
public ITimestampBased
@@ -88,7 +88,7 @@ namespace BlackMisc
protected:
//! \copydoc CXSwiftBusSettingsQtFree::objectUpdated
virtual void objectUpdated() override;
virtual void objectUpdated() override final;
private:
BLACK_METACLASS(