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

@@ -24,16 +24,17 @@ namespace BlackMisc
*/
class CXSwiftBusSettingsQtFree
{
public:
protected:
//! Constructor.
CXSwiftBusSettingsQtFree();
//! JSON Constructor.
CXSwiftBusSettingsQtFree(const std::string &json);
//! Dtor
virtual ~CXSwiftBusSettingsQtFree() {}
//! Destructor.
~CXSwiftBusSettingsQtFree() = default;
public:
//! DBus server
const std::string &getDBusServerAddress() const { return m_dBusServerAddress; }
@@ -112,7 +113,7 @@ namespace BlackMisc
//! @}
//! Object has been updated
virtual void objectUpdated();
virtual void objectUpdated() = 0;
std::string m_dBusServerAddress { "tcp:host=127.0.0.1,port=45001" }; //!< DBus server
std::string m_nightTextureMode { "auto" }; //!< night texture mode