Skip to content

Commit

Permalink
STYLE: Use override statements for C++11
Browse files Browse the repository at this point in the history
Describe function overrides using the override keyword from C++11.

-----
https://stackoverflow.com/questions/39932391/virtual-override-or-both-c
When you override a function you don't technically need to write either virtual
or override.

The original base class declaration needs the keyword virtual to mark it as
virtual.

In the derived class the function is virtual by way of having the ¹same type as
the base class function.

However, an override can help avoid bugs by producing a compilation error when
the intended override isn't technically an override. For instance, the function
type isn't exactly like the base class function. Or that a maintenance of the
base class changes that function's type, e.g. adding a defaulted argument.

In the same way, a virtual keyword in the derived class can make such a bug
more subtle by ensuring that the function is still virtual in the further
derived classes.

So the general advice is,

Use virtual for the base class function declaration.  This is technically
necessary.

Use override (only) for a derived class' override.  This helps maintenance.
-----

Remove 'virtual' is implied when 'override' is specified, so remove the
redundant specification.

cd ${BLDDIR}
run-clang-tidy.py -extra-arg=-D__clang__ -checks=-*,modernize-use-override  -header-filter=.* -fix
  • Loading branch information
hjmjohnson committed Apr 19, 2020
1 parent e7787ce commit 839a1de
Show file tree
Hide file tree
Showing 22 changed files with 50 additions and 50 deletions.
2 changes: 1 addition & 1 deletion Base/QTGUI/qSlicerSettingsInternationalizationPanel.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class Q_SLICER_BASE_QTGUI_EXPORT qSlicerSettingsInternationalizationPanel
explicit qSlicerSettingsInternationalizationPanel(QWidget* parent = 0);

/// Destructor
virtual ~qSlicerSettingsInternationalizationPanel();
~qSlicerSettingsInternationalizationPanel() override;

public slots:

Expand Down
20 changes: 10 additions & 10 deletions Libs/MRML/Core/vtkMRMLLinearTransformSequenceStorageNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,22 @@ class VTK_MRML_EXPORT vtkMRMLLinearTransformSequenceStorageNode : public vtkMRML
static vtkMRMLLinearTransformSequenceStorageNode *New();
vtkTypeMacro(vtkMRMLLinearTransformSequenceStorageNode,vtkMRMLNRRDStorageNode);

virtual vtkMRMLNode* CreateNodeInstance() override;
vtkMRMLNode* CreateNodeInstance() override;

///
/// Get node XML tag name (like Storage, Model)
virtual const char* GetNodeTagName() override {return "LinearTransformSequenceStorage";};
const char* GetNodeTagName() override {return "LinearTransformSequenceStorage";};

/// Return true if the node can be read in.
virtual bool CanReadInReferenceNode(vtkMRMLNode *refNode) override;
bool CanReadInReferenceNode(vtkMRMLNode *refNode) override;

/// Return true if the node can be written by using thie writer.
virtual bool CanWriteFromReferenceNode(vtkMRMLNode* refNode) override;
virtual int WriteDataInternal(vtkMRMLNode *refNode) override;
bool CanWriteFromReferenceNode(vtkMRMLNode* refNode) override;
int WriteDataInternal(vtkMRMLNode *refNode) override;

///
/// Return a default file extension for writting
virtual const char* GetDefaultWriteFileExtension() override;
const char* GetDefaultWriteFileExtension() override;

/// Read all the fields in the metaimage file header.
/// If sequence nodes are passed in createdNodes then they will be reused. New sequence nodes will be created if there are more transforms
Expand All @@ -66,21 +66,21 @@ class VTK_MRML_EXPORT vtkMRMLLinearTransformSequenceStorageNode : public vtkMRML

protected:
vtkMRMLLinearTransformSequenceStorageNode();
~vtkMRMLLinearTransformSequenceStorageNode();
~vtkMRMLLinearTransformSequenceStorageNode() override;
vtkMRMLLinearTransformSequenceStorageNode(const vtkMRMLLinearTransformSequenceStorageNode&);
void operator=(const vtkMRMLLinearTransformSequenceStorageNode&);

/// Does the actual reading. Returns 1 on success, 0 otherwise.
/// Returns 0 by default (read not supported).
/// This implementation delegates most everything to the superclass
/// but it has an early exit if the file to be read is incompatible.
virtual int ReadDataInternal(vtkMRMLNode* refNode) override;
int ReadDataInternal(vtkMRMLNode* refNode) override;

/// Initialize all the supported write file types
virtual void InitializeSupportedReadFileTypes() override;
void InitializeSupportedReadFileTypes() override;

/// Initialize all the supported write file types
virtual void InitializeSupportedWriteFileTypes() override;
void InitializeSupportedWriteFileTypes() override;
};

#endif
2 changes: 1 addition & 1 deletion Libs/MRML/Core/vtkMRMLSequenceNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ class VTK_MRML_EXPORT vtkMRMLSequenceNode : public vtkMRMLStorableNode

protected:
vtkMRMLSequenceNode();
~vtkMRMLSequenceNode();
~vtkMRMLSequenceNode() override;
vtkMRMLSequenceNode(const vtkMRMLSequenceNode&);
void operator=(const vtkMRMLSequenceNode&);

Expand Down
2 changes: 1 addition & 1 deletion Libs/MRML/Core/vtkMRMLSequenceStorageNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class VTK_MRML_EXPORT vtkMRMLSequenceStorageNode : public vtkMRMLStorageNode

protected:
vtkMRMLSequenceStorageNode();
~vtkMRMLSequenceStorageNode();
~vtkMRMLSequenceStorageNode() override;
vtkMRMLSequenceStorageNode(const vtkMRMLSequenceStorageNode&);
void operator=(const vtkMRMLSequenceStorageNode&);

Expand Down
2 changes: 1 addition & 1 deletion Libs/MRML/Core/vtkMRMLTransformNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ class VTK_MRML_EXPORT vtkMRMLTransformNode : public vtkMRMLDisplayableNode
vtkMRMLStorageNode* CreateDefaultStorageNode() override;

/// Creates the most appropriate storage node class for storing a sequence of these nodes.
virtual vtkMRMLStorageNode* CreateDefaultSequenceStorageNode();
vtkMRMLStorageNode* CreateDefaultSequenceStorageNode() override;

///
/// Create and observe default display node
Expand Down
2 changes: 1 addition & 1 deletion Libs/MRML/Core/vtkMRMLVolumeSequenceStorageNode.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ class VTK_MRML_EXPORT vtkMRMLVolumeSequenceStorageNode : public vtkMRMLNRRDStora

protected:
vtkMRMLVolumeSequenceStorageNode();
~vtkMRMLVolumeSequenceStorageNode();
~vtkMRMLVolumeSequenceStorageNode() override;
vtkMRMLVolumeSequenceStorageNode(const vtkMRMLVolumeSequenceStorageNode&);
void operator=(const vtkMRMLVolumeSequenceStorageNode&);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerLineRepresentation3D
~vtkSlicerLineRepresentation3D() override;

/// Update interaction handle visibility for representation
virtual void UpdateInteractionPipeline() override;
void UpdateInteractionPipeline() override;

vtkSmartPointer<vtkPolyData> Line;
vtkSmartPointer<vtkPolyDataMapper> LineMapper;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerMarkupsWidgetRepresen
~vtkSlicerMarkupsWidgetRepresentation2D() override;

/// Reimplemented for 2D specific mapper/actor settings
virtual void SetupInteractionPipeline() override;
void SetupInteractionPipeline() override;

/// Get MRML view node as slice view node
vtkMRMLSliceNode *GetSliceNode();
Expand Down Expand Up @@ -172,9 +172,9 @@ class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerMarkupsWidgetRepresen
{
public:
MarkupsInteractionPipeline2D(vtkSlicerMarkupsWidgetRepresentation* representation);
virtual ~MarkupsInteractionPipeline2D() {};
~MarkupsInteractionPipeline2D() override {};

virtual void GetViewPlaneNormal(double viewPlaneNormal[3]) override;
void GetViewPlaneNormal(double viewPlaneNormal[3]) override;

vtkSmartPointer<vtkTransformPolyDataFilter> WorldToSliceTransformFilter;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerPlaneRepresentation3D
void BuildPlane();

// Update visibility of interaction handles for representation
virtual void UpdateInteractionPipeline() override;
void UpdateInteractionPipeline() override;

private:
vtkSlicerPlaneRepresentation3D(const vtkSlicerPlaneRepresentation3D&) = delete;
Expand Down
2 changes: 1 addition & 1 deletion Modules/Loadable/Sequences/Logic/vtkSlicerSequencesLogic.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class VTK_SLICER_SEQUENCES_MODULE_LOGIC_EXPORT vtkSlicerSequencesLogic :

protected:
vtkSlicerSequencesLogic();
virtual ~vtkSlicerSequencesLogic();
~vtkSlicerSequencesLogic() override;

void SetMRMLSceneInternal(vtkMRMLScene* newScene) override;
/// Register MRML Node classes to Scene. Gets called automatically when the MRMLScene is attached to this logic class.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ class VTK_SLICER_SEQUENCES_MODULE_MRML_EXPORT vtkMRMLSequenceBrowserNode : publi

protected:
vtkMRMLSequenceBrowserNode();
~vtkMRMLSequenceBrowserNode();
~vtkMRMLSequenceBrowserNode() override;
vtkMRMLSequenceBrowserNode(const vtkMRMLSequenceBrowserNode&);
void operator=(const vtkMRMLSequenceBrowserNode&);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ qMRMLSequenceBrowserPlayWidgetPlugin
public:
qMRMLSequenceBrowserPlayWidgetPlugin(QObject *_parent = 0);

QWidget *createWidget(QWidget *_parent);
QString domXml() const;
QString includeFile() const;
bool isContainer() const;
QString name() const;
QWidget *createWidget(QWidget *_parent) override;
QString domXml() const override;
QString includeFile() const override;
bool isContainer() const override;
QString name() const override;

};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ qMRMLSequenceBrowserSeekWidgetPlugin
public:
qMRMLSequenceBrowserSeekWidgetPlugin(QObject *_parent = 0);

QWidget *createWidget(QWidget *_parent);
QString domXml() const;
QString includeFile() const;
bool isContainer() const;
QString name() const;
QWidget *createWidget(QWidget *_parent) override;
QString domXml() const override;
QString includeFile() const override;
bool isContainer() const override;
QString name() const override;

};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ qMRMLSequenceBrowserToolBarPlugin
public:
qMRMLSequenceBrowserToolBarPlugin(QObject *_parent = 0);

QWidget *createWidget(QWidget *_parent);
QString domXml() const;
QIcon icon() const;
QString includeFile() const;
bool isContainer() const;
QString name() const;
QWidget *createWidget(QWidget *_parent) override;
QString domXml() const override;
QIcon icon() const override;
QString includeFile() const override;
bool isContainer() const override;
QString name() const override;

};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ class Q_SLICER_MODULE_SEQUENCES_WIDGETS_PLUGINS_EXPORT qSlicerSequencesModuleWid

qSlicerSequencesModuleWidgetsAbstractPlugin();
// Don't reimplement this method.
QString group() const;
QString group() const override;
// You can reimplement these methods
virtual QIcon icon() const;
virtual QString toolTip() const;
virtual QString whatsThis() const;
QIcon icon() const override;
QString toolTip() const override;
QString whatsThis() const override;

};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class Q_SLICER_MODULE_SEQUENCES_WIDGETS_PLUGINS_EXPORT qSlicerSequenceBrowserMod
Q_INTERFACES(QDesignerCustomWidgetCollectionInterface);

public:
QList<QDesignerCustomWidgetInterface*> customWidgets() const
QList<QDesignerCustomWidgetInterface*> customWidgets() const override
{
QList<QDesignerCustomWidgetInterface *> plugins;
plugins << new qMRMLSequenceBrowserPlayWidgetPlugin;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class Q_SLICER_MODULE_SEQUENCES_WIDGETS_EXPORT qMRMLSequenceBrowserPlayWidget
public:
typedef qMRMLWidget Superclass;
qMRMLSequenceBrowserPlayWidget(QWidget *newParent = 0);
virtual ~qMRMLSequenceBrowserPlayWidget();
~qMRMLSequenceBrowserPlayWidget() override;

/// Add a keyboard shortcut for play/pause button
void setPlayPauseShortcut(QString keySequence);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class Q_SLICER_MODULE_SEQUENCES_WIDGETS_EXPORT qMRMLSequenceBrowserSeekWidget
public:
typedef qMRMLWidget Superclass;
qMRMLSequenceBrowserSeekWidget(QWidget *newParent = 0);
virtual ~qMRMLSequenceBrowserSeekWidget();
~qMRMLSequenceBrowserSeekWidget() override;

/// Get access to the internal slider widget.
/// This allows fine-tuning of parameters such as page step.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class Q_SLICER_MODULE_SEQUENCES_WIDGETS_EXPORT qMRMLSequenceBrowserToolBar : pub
/// Title is the name of the toolbar (can appear using right click on the toolbar area)
qMRMLSequenceBrowserToolBar(const QString& title, QWidget* parent = 0);
qMRMLSequenceBrowserToolBar(QWidget* parent = 0);
virtual ~qMRMLSequenceBrowserToolBar();
~qMRMLSequenceBrowserToolBar() override;

public slots:
virtual void setMRMLScene(vtkMRMLScene* newScene);
Expand Down
2 changes: 1 addition & 1 deletion Modules/Loadable/Sequences/qSlicerSequencesModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ qSlicerSequencesModule

typedef qSlicerLoadableModule Superclass;
explicit qSlicerSequencesModule(QObject *parent=0);
virtual ~qSlicerSequencesModule();
~qSlicerSequencesModule() override;

qSlicerGetTitleMacro(QTMODULE_TITLE);

Expand Down
4 changes: 2 additions & 2 deletions Modules/Loadable/Sequences/qSlicerSequencesModuleWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class Q_SLICER_QTMODULES_SEQUENCES_EXPORT qSlicerSequencesModuleWidget :

typedef qSlicerAbstractModuleWidget Superclass;
qSlicerSequencesModuleWidget(QWidget *parent=0);
virtual ~qSlicerSequencesModuleWidget();
~qSlicerSequencesModuleWidget() override;

/// Set up the GUI from mrml when entering
void enter() override;
Expand Down Expand Up @@ -88,7 +88,7 @@ public slots:
void setEnableWidgets(bool enable);

public slots:
void setMRMLScene(vtkMRMLScene* scene);
void setMRMLScene(vtkMRMLScene* scene) override;

protected slots:
void activeBrowserNodeChanged(vtkMRMLNode* node);
Expand Down
2 changes: 1 addition & 1 deletion Modules/Loadable/Sequences/qSlicerSequencesReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class qSlicerSequencesReader
public:
typedef qSlicerFileReader Superclass;
qSlicerSequencesReader(vtkSlicerSequencesLogic* sequencesLogic = 0, QObject* parent = 0);
virtual ~qSlicerSequencesReader();
~qSlicerSequencesReader() override;

void setSequencesLogic(vtkSlicerSequencesLogic* sequencesLogic);
vtkSlicerSequencesLogic* sequencesLogic()const;
Expand Down

0 comments on commit 839a1de

Please sign in to comment.