diff --git a/Common/Color/vtkColorSeries.h b/Common/Color/vtkColorSeries.h
index 671cce97e8ecffd82a429274f933b9a4b29f41b9..428bdfbb55be026916c544fd328fdd4ba7665e38 100644
--- a/Common/Color/vtkColorSeries.h
+++ b/Common/Color/vtkColorSeries.h
@@ -288,7 +288,7 @@ enum LUTMode {
 
 protected:
   vtkColorSeries();
-  virtual ~vtkColorSeries();
+  ~vtkColorSeries() VTK_OVERRIDE;
 
   // Description:
   // If the current scheme is a predefined (read-only) scheme,
diff --git a/Common/Color/vtkNamedColors.h b/Common/Color/vtkNamedColors.h
index e72e2c1786bc0b6d362ee37188f115b1811818f3..405c21c482e6f1cce09160568549ae73c326b816 100644
--- a/Common/Color/vtkNamedColors.h
+++ b/Common/Color/vtkNamedColors.h
@@ -352,7 +352,7 @@ public:
 
 protected:
   vtkNamedColors();
-  virtual ~vtkNamedColors();
+  ~vtkNamedColors() VTK_OVERRIDE;
 
 private:
   // Description:
diff --git a/Common/ComputationalGeometry/vtkCardinalSpline.h b/Common/ComputationalGeometry/vtkCardinalSpline.h
index 5dcce8faf92ab6ee2e433af98c7e328d2d94ffe1..71668e1642437019c5650c75be27a20d1fa5bf82 100644
--- a/Common/ComputationalGeometry/vtkCardinalSpline.h
+++ b/Common/ComputationalGeometry/vtkCardinalSpline.h
@@ -39,19 +39,19 @@ public:
 
   // Description
   // Compute Cardinal Splines for each dependent variable
-  void Compute ();
+  void Compute () VTK_OVERRIDE;
 
   // Description:
   // Evaluate a 1D cardinal spline.
-  virtual double Evaluate (double t);
+  double Evaluate (double t) VTK_OVERRIDE;
 
   // Description:
   // Deep copy of cardinal spline data.
-  virtual void DeepCopy(vtkSpline *s);
+  void DeepCopy(vtkSpline *s) VTK_OVERRIDE;
 
 protected:
   vtkCardinalSpline();
-  ~vtkCardinalSpline() {}
+  ~vtkCardinalSpline() VTK_OVERRIDE {}
 
   void Fit1D (int n, double *x, double *y, double *w, double coefficients[][4],
               int leftConstraint, double leftValue, int rightConstraint,
diff --git a/Common/ComputationalGeometry/vtkKochanekSpline.h b/Common/ComputationalGeometry/vtkKochanekSpline.h
index cde2844ad0b1129c973c8cbc88081ebba040e3a9..b9fedb41b83298997e1cc0f9e0c8f5f80947c559 100644
--- a/Common/ComputationalGeometry/vtkKochanekSpline.h
+++ b/Common/ComputationalGeometry/vtkKochanekSpline.h
@@ -59,11 +59,11 @@ public:
 
   // Description:
   // Compute Kochanek Spline coefficients.
-  void Compute ();
+  void Compute () VTK_OVERRIDE;
 
   // Description:
   // Evaluate a 1D Kochanek spline.
-  double Evaluate (double t);
+  double Evaluate (double t) VTK_OVERRIDE;
 
   // Description:
   // Set the bias for all points. Default is 0.
@@ -82,11 +82,11 @@ public:
 
   // Description:
   // Deep copy of cardinal spline data.
-  virtual void DeepCopy(vtkSpline *s);
+  void DeepCopy(vtkSpline *s) VTK_OVERRIDE;
 
 protected:
   vtkKochanekSpline();
-  ~vtkKochanekSpline() {}
+  ~vtkKochanekSpline() VTK_OVERRIDE {}
 
   void Fit1D (int n, double *x, double *y, double tension, double bias,
               double continuity, double coefficients[][4], int leftConstraint,
diff --git a/Common/ComputationalGeometry/vtkParametricBohemianDome.h b/Common/ComputationalGeometry/vtkParametricBohemianDome.h
index 026667334e5b4717cd6ece1c1fbea7de14a0396e..da3166cbef44f0f3ede5cc8b63b2cae03ea34767 100644
--- a/Common/ComputationalGeometry/vtkParametricBohemianDome.h
+++ b/Common/ComputationalGeometry/vtkParametricBohemianDome.h
@@ -56,7 +56,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // BohemianDome surface.
@@ -65,16 +65,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricBohemianDome();
-  ~vtkParametricBohemianDome();
+  ~vtkParametricBohemianDome() VTK_OVERRIDE;
 
   // Variables
   double A;
diff --git a/Common/ComputationalGeometry/vtkParametricBour.h b/Common/ComputationalGeometry/vtkParametricBour.h
index a6dba86bf81d2c2b199efb95943805d2e5fd76c6..1d38c0bf7f27639fb71ba02d7d41b7560aceac23 100644
--- a/Common/ComputationalGeometry/vtkParametricBour.h
+++ b/Common/ComputationalGeometry/vtkParametricBour.h
@@ -45,7 +45,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Bour's minimal surface.
@@ -54,16 +54,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricBour();
-  ~vtkParametricBour();
+  ~vtkParametricBour() VTK_OVERRIDE;
 
 private:
   vtkParametricBour(const vtkParametricBour&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricBoy.h b/Common/ComputationalGeometry/vtkParametricBoy.h
index 188ada52087023d5e5277f683d896e2c3974c51b..a82bf8d1b4fed8035203cfa197faf43b59b3d7ee 100644
--- a/Common/ComputationalGeometry/vtkParametricBoy.h
+++ b/Common/ComputationalGeometry/vtkParametricBoy.h
@@ -52,7 +52,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Set/Get the scale factor for the z-coordinate.
@@ -67,7 +67,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -82,11 +82,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricBoy();
-  ~vtkParametricBoy();
+  ~vtkParametricBoy() VTK_OVERRIDE;
 
   // Variables
   double ZScale;
diff --git a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
index 63e6d735c493217f2330b81722028faaa518d7c5..4749d8123ade8524e1e5c3484139819dd2cff81e 100644
--- a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
+++ b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
@@ -46,7 +46,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Catalan's minimal surface.
@@ -55,16 +55,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricCatalanMinimal();
-  ~vtkParametricCatalanMinimal();
+  ~vtkParametricCatalanMinimal() VTK_OVERRIDE;
 
 private:
   vtkParametricCatalanMinimal(const vtkParametricCatalanMinimal&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricConicSpiral.h b/Common/ComputationalGeometry/vtkParametricConicSpiral.h
index 00bf58e50d6a3776dc5480ee2fb4e0572e1646ae..8fba95e917c52b0d591b0880fb3a2851caa6f6e9 100644
--- a/Common/ComputationalGeometry/vtkParametricConicSpiral.h
+++ b/Common/ComputationalGeometry/vtkParametricConicSpiral.h
@@ -50,7 +50,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
    // Description:
   // Set/Get the scale factor.
@@ -86,7 +86,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -100,11 +100,11 @@ public:
   //
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricConicSpiral();
-  ~vtkParametricConicSpiral();
+  ~vtkParametricConicSpiral() VTK_OVERRIDE;
 
   // Variables
   double A;
diff --git a/Common/ComputationalGeometry/vtkParametricCrossCap.h b/Common/ComputationalGeometry/vtkParametricCrossCap.h
index d024127bf418cedf16f5f0faa5c1ea32241918b3..f80e550759483b7e537335be298f64c5ed848490 100644
--- a/Common/ComputationalGeometry/vtkParametricCrossCap.h
+++ b/Common/ComputationalGeometry/vtkParametricCrossCap.h
@@ -51,7 +51,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // A cross-cap.
@@ -60,7 +60,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -75,11 +75,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricCrossCap();
-  ~vtkParametricCrossCap();
+  ~vtkParametricCrossCap() VTK_OVERRIDE;
 
 private:
   vtkParametricCrossCap(const vtkParametricCrossCap&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricDini.h b/Common/ComputationalGeometry/vtkParametricDini.h
index 13b14ef4ca43ba9c1f3729ae0604009dd7a895e2..79adf5ac67373e3181fd553a1852f564508759f9 100644
--- a/Common/ComputationalGeometry/vtkParametricDini.h
+++ b/Common/ComputationalGeometry/vtkParametricDini.h
@@ -52,7 +52,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Set/Get the scale factor.
@@ -75,7 +75,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -90,11 +90,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricDini();
-  ~vtkParametricDini();
+  ~vtkParametricDini() VTK_OVERRIDE;
 
   // Variables
   double A;
diff --git a/Common/ComputationalGeometry/vtkParametricEllipsoid.h b/Common/ComputationalGeometry/vtkParametricEllipsoid.h
index 4f8f34a92a4a6029e0bfd2a519ce6e24c1a1e5df..9541f885bee4606dd81a4bd6c6f41ea1f2c3a01d 100644
--- a/Common/ComputationalGeometry/vtkParametricEllipsoid.h
+++ b/Common/ComputationalGeometry/vtkParametricEllipsoid.h
@@ -55,7 +55,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Set/Get the scaling factor for the x-axis. Default is 1.
@@ -79,7 +79,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -94,11 +94,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricEllipsoid();
-  ~vtkParametricEllipsoid();
+  ~vtkParametricEllipsoid() VTK_OVERRIDE;
 
   // Variables
   double XRadius;
diff --git a/Common/ComputationalGeometry/vtkParametricEnneper.h b/Common/ComputationalGeometry/vtkParametricEnneper.h
index 78eaa6c7f5ddafae5759b039f920cd5a8a55b9ed..2feb990e9716aa6020f23c77b317abee9727ebea 100644
--- a/Common/ComputationalGeometry/vtkParametricEnneper.h
+++ b/Common/ComputationalGeometry/vtkParametricEnneper.h
@@ -51,7 +51,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Enneper's surface.
@@ -60,7 +60,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -75,11 +75,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricEnneper();
-  ~vtkParametricEnneper();
+  ~vtkParametricEnneper() VTK_OVERRIDE;
 
 private:
   vtkParametricEnneper(const vtkParametricEnneper&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricFigure8Klein.h b/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
index 238c16159cfbad08db4952773701a9d9a4a9c4a6..be5e80a30d49babd5c13762e05cff40069bae6f2 100644
--- a/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
+++ b/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
@@ -63,7 +63,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // A Figure-8 Klein bottle.
@@ -72,7 +72,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -87,11 +87,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricFigure8Klein();
-  ~vtkParametricFigure8Klein();
+  ~vtkParametricFigure8Klein() VTK_OVERRIDE;
 
   // Variables
   double Radius;
diff --git a/Common/ComputationalGeometry/vtkParametricFunction.h b/Common/ComputationalGeometry/vtkParametricFunction.h
index fc36ca119871986026e2b880e93df42fa0944bf4..7e60dc779ab84914155cda795a16c850fe6c1db0 100644
--- a/Common/ComputationalGeometry/vtkParametricFunction.h
+++ b/Common/ComputationalGeometry/vtkParametricFunction.h
@@ -188,7 +188,7 @@ public:
 
 protected:
   vtkParametricFunction();
-  virtual ~vtkParametricFunction();
+  ~vtkParametricFunction() VTK_OVERRIDE;
 
   // Variables
   double MinimumU;
diff --git a/Common/ComputationalGeometry/vtkParametricHenneberg.h b/Common/ComputationalGeometry/vtkParametricHenneberg.h
index 6de0a4cec579ce3376d639d13c86a0ea0dbcb3d6..0a5e3f085f5607167545bf4472fbbfa693426708 100644
--- a/Common/ComputationalGeometry/vtkParametricHenneberg.h
+++ b/Common/ComputationalGeometry/vtkParametricHenneberg.h
@@ -45,7 +45,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Henneberg's minimal surface.
@@ -54,16 +54,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricHenneberg();
-  ~vtkParametricHenneberg();
+  ~vtkParametricHenneberg() VTK_OVERRIDE;
 
 private:
   vtkParametricHenneberg(const vtkParametricHenneberg&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricKlein.h b/Common/ComputationalGeometry/vtkParametricKlein.h
index b7428ac5aa612320544520a9a0553e9c09741adc..fd6ba7d29fbf296b5c49de2efcd32d4e0918cb73 100644
--- a/Common/ComputationalGeometry/vtkParametricKlein.h
+++ b/Common/ComputationalGeometry/vtkParametricKlein.h
@@ -57,7 +57,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // A Klein bottle.
@@ -66,7 +66,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -81,11 +81,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricKlein();
-  ~vtkParametricKlein();
+  ~vtkParametricKlein() VTK_OVERRIDE;
 
 private:
   vtkParametricKlein(const vtkParametricKlein&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricKuen.h b/Common/ComputationalGeometry/vtkParametricKuen.h
index 92ad489e5bcaf3f790a98ee4bf79bf2951ad7f1f..363dbaa8f778e21b74582a2405c90dbbfa5d04b5 100644
--- a/Common/ComputationalGeometry/vtkParametricKuen.h
+++ b/Common/ComputationalGeometry/vtkParametricKuen.h
@@ -46,7 +46,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Kuen's surface.
@@ -55,16 +55,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricKuen();
-  ~vtkParametricKuen();
+  ~vtkParametricKuen() VTK_OVERRIDE;
 
 private:
   vtkParametricKuen(const vtkParametricKuen&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricMobius.h b/Common/ComputationalGeometry/vtkParametricMobius.h
index 63e279f168eacf3d496fdd9c2ca2c64bcbfaee7a..ad1a40d7e91e1063cf772dc733114c473633a723 100644
--- a/Common/ComputationalGeometry/vtkParametricMobius.h
+++ b/Common/ComputationalGeometry/vtkParametricMobius.h
@@ -54,7 +54,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // The Mobius strip.
@@ -63,7 +63,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -78,11 +78,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricMobius();
-  ~vtkParametricMobius();
+  ~vtkParametricMobius() VTK_OVERRIDE;
 
   // Variables
   double Radius;
diff --git a/Common/ComputationalGeometry/vtkParametricPluckerConoid.h b/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
index 875fee5c061ff46bff24ee1a35e7b9dd99bd9a4a..842088f981de07484242f05c72461b3e5e7a2ea3 100644
--- a/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
+++ b/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
@@ -56,7 +56,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Plucker's conoid surface.
@@ -65,16 +65,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricPluckerConoid();
-  ~vtkParametricPluckerConoid();
+  ~vtkParametricPluckerConoid() VTK_OVERRIDE;
 
   // Variables
   int N;
diff --git a/Common/ComputationalGeometry/vtkParametricPseudosphere.h b/Common/ComputationalGeometry/vtkParametricPseudosphere.h
index 5b351ad6e296c595eb9b4b4f245090e3009446f4..925bfe997f0f2d48be7113a5b30e9b2cba0c0070 100644
--- a/Common/ComputationalGeometry/vtkParametricPseudosphere.h
+++ b/Common/ComputationalGeometry/vtkParametricPseudosphere.h
@@ -47,7 +47,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Pseudosphere surface.
@@ -56,16 +56,16 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), D_u\vec{f} = (dx/du, dy/du, dz/du), D_v\vec{f} = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = D_u\vec{f} \times D_v\vec{f}\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
   // This method simply returns 0.
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricPseudosphere();
-  ~vtkParametricPseudosphere();
+  ~vtkParametricPseudosphere() VTK_OVERRIDE;
 
 private:
   vtkParametricPseudosphere(const vtkParametricPseudosphere&) VTK_DELETE_FUNCTION;
diff --git a/Common/ComputationalGeometry/vtkParametricRandomHills.h b/Common/ComputationalGeometry/vtkParametricRandomHills.h
index 2dfba965c3eef57d7e5125452558015d6756b979..e5dffd4fb9caf5c86594fbb291ea58c6fcd93fda 100644
--- a/Common/ComputationalGeometry/vtkParametricRandomHills.h
+++ b/Common/ComputationalGeometry/vtkParametricRandomHills.h
@@ -46,7 +46,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Construct a surface of random hills with the following parameters:
@@ -138,7 +138,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -153,11 +153,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricRandomHills();
-  ~vtkParametricRandomHills();
+  ~vtkParametricRandomHills() VTK_OVERRIDE;
 
   // Variables
   int NumberOfHills;
diff --git a/Common/ComputationalGeometry/vtkParametricRoman.h b/Common/ComputationalGeometry/vtkParametricRoman.h
index 722fcb6930b586d7722757a5a74323bb5777766a..bf2d671394bac6796936f796a0cf8f05f6138744 100644
--- a/Common/ComputationalGeometry/vtkParametricRoman.h
+++ b/Common/ComputationalGeometry/vtkParametricRoman.h
@@ -39,7 +39,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Construct Steiner's Roman Surface with the following parameters:
@@ -64,7 +64,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -79,12 +79,12 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 
 protected:
   vtkParametricRoman();
-  ~vtkParametricRoman();
+  ~vtkParametricRoman() VTK_OVERRIDE;
 
   // Variables
   double Radius;
diff --git a/Common/ComputationalGeometry/vtkParametricSpline.h b/Common/ComputationalGeometry/vtkParametricSpline.h
index 959b13dcb952c1e24ba40a2e4cda5b7ccc829a2f..9458876207db82e59a534c5296431ddc127dce1a 100644
--- a/Common/ComputationalGeometry/vtkParametricSpline.h
+++ b/Common/ComputationalGeometry/vtkParametricSpline.h
@@ -56,17 +56,17 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 1;}
+  int GetDimension() VTK_OVERRIDE {return 1;}
 
   // Description:
   // Evaluate the spline at parametric coordinate u[0] returning
   // the point coordinate Pt[3].
-  virtual void Evaluate(double u[3], double Pt[3], double Du[9]);
+  void Evaluate(double u[3], double Pt[3], double Du[9]) VTK_OVERRIDE;
 
   // Description:
   // Evaluate a scalar value at parametric coordinate u[0] and Pt[3].
   // The scalar value is just the parameter u[0].
-  virtual double EvaluateScalar(double u[3], double Pt[3], double Du[9]);
+  double EvaluateScalar(double u[3], double Pt[3], double Du[9]) VTK_OVERRIDE;
 
   // Description:
   // By default, this class is constructed with three instances of
@@ -138,7 +138,7 @@ public:
 
 protected:
   vtkParametricSpline();
-  ~vtkParametricSpline();
+  ~vtkParametricSpline() VTK_OVERRIDE;
 
   // Points definition
   vtkPoints *Points;
diff --git a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
index 4f071a811b618b8e6221b2818a85a528a07726a9..decf937a3e6b4e31b7a0914f6c05d67c1c942ec5 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
+++ b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
@@ -59,7 +59,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Set/Get the scaling factor for the x-axis. Default is 1.
@@ -93,7 +93,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -108,11 +108,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricSuperEllipsoid();
-  ~vtkParametricSuperEllipsoid();
+  ~vtkParametricSuperEllipsoid() VTK_OVERRIDE;
 
   // Variables
   double XRadius;
diff --git a/Common/ComputationalGeometry/vtkParametricSuperToroid.h b/Common/ComputationalGeometry/vtkParametricSuperToroid.h
index c6c70017d0acdf9eced8712ba779b08d8719268e..d6ecce7ca0873d4be662014939c4d1ae7561ad21 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperToroid.h
+++ b/Common/ComputationalGeometry/vtkParametricSuperToroid.h
@@ -64,7 +64,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // Set/Get the radius from the center to the middle of the ring of the
@@ -110,7 +110,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$ .
   // Then the normal is \f$N = Du X Dv\f$ .
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -125,11 +125,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricSuperToroid();
-  ~vtkParametricSuperToroid();
+  ~vtkParametricSuperToroid() VTK_OVERRIDE;
 
   // Variables
   double RingRadius;
diff --git a/Common/ComputationalGeometry/vtkParametricTorus.h b/Common/ComputationalGeometry/vtkParametricTorus.h
index bb8fca5199c44e978bb594c957d886c80dfd3058..046f0695486027ae8f7f86f99599e47151a8738b 100644
--- a/Common/ComputationalGeometry/vtkParametricTorus.h
+++ b/Common/ComputationalGeometry/vtkParametricTorus.h
@@ -61,7 +61,7 @@ public:
 
   // Description
   // Return the parametric dimension of the class.
-  virtual int GetDimension() {return 2;}
+  int GetDimension() VTK_OVERRIDE {return 2;}
 
   // Description:
   // A torus.
@@ -70,7 +70,7 @@ public:
   // as Pt. It also returns the partial derivatives Du and Dv.
   // \f$Pt = (x, y, z), Du = (dx/du, dy/du, dz/du), Dv = (dx/dv, dy/dv, dz/dv)\f$.
   // Then the normal is \f$N = Du X Dv\f$.
-  virtual void Evaluate(double uvw[3], double Pt[3], double Duvw[9]);
+  void Evaluate(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
   // Description:
   // Calculate a user defined scalar using one or all of uvw, Pt, Duvw.
@@ -85,11 +85,11 @@ public:
   // If the user does not need to calculate a scalar, then the
   // instantiated function should return zero.
   //
-  virtual double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]);
+  double EvaluateScalar(double uvw[3], double Pt[3], double Duvw[9]) VTK_OVERRIDE;
 
 protected:
   vtkParametricTorus();
-  ~vtkParametricTorus();
+  ~vtkParametricTorus() VTK_OVERRIDE;
 
   // Variables
   double RingRadius;
diff --git a/Common/Core/vtkAOSDataArrayTemplate.h b/Common/Core/vtkAOSDataArrayTemplate.h
index 0f9707ae74acdc5554266f228392d6b586e23ab8..62dcc743ffe52c777c0e25d8e1c2fc66d4d4b39d 100644
--- a/Common/Core/vtkAOSDataArrayTemplate.h
+++ b/Common/Core/vtkAOSDataArrayTemplate.h
@@ -200,7 +200,7 @@ public:
 
 protected:
   vtkAOSDataArrayTemplate();
-  ~vtkAOSDataArrayTemplate();
+  ~vtkAOSDataArrayTemplate() VTK_OVERRIDE;
 
   // Description:
   // Allocate space for numTuples. Old data is not preserved. If numTuples == 0,
diff --git a/Common/Core/vtkAbstractArray.h b/Common/Core/vtkAbstractArray.h
index 68e7844ae097649a2465141d630c2039f49a14c7..44188ff6ec291fc99e5db35e9ae75d8c5ec88389 100644
--- a/Common/Core/vtkAbstractArray.h
+++ b/Common/Core/vtkAbstractArray.h
@@ -550,7 +550,7 @@ public:
 protected:
   // Construct object with default tuple dimension (number of components) of 1.
   vtkAbstractArray();
-  ~vtkAbstractArray();
+  ~vtkAbstractArray() VTK_OVERRIDE;
 
   // Description:
   // Set an information object that can be used to annotate the array.
diff --git a/Common/Core/vtkAnimationCue.h b/Common/Core/vtkAnimationCue.h
index 0666883bddfcec98d47c36a4bf8d3f071358e762..2d42f9c9f589b4e0bda907111af3a766dff51844 100644
--- a/Common/Core/vtkAnimationCue.h
+++ b/Common/Core/vtkAnimationCue.h
@@ -155,7 +155,7 @@ public:
 
 protected:
   vtkAnimationCue();
-  ~vtkAnimationCue();
+  ~vtkAnimationCue() VTK_OVERRIDE;
 
   enum {
     UNINITIALIZED=0,
diff --git a/Common/Core/vtkArray.h b/Common/Core/vtkArray.h
index 8d0391c6cb5bedce0e6cabe27203c906aa00265c..481a0d2f75fee35fb0c971ed674911c59fbaa8ba 100644
--- a/Common/Core/vtkArray.h
+++ b/Common/Core/vtkArray.h
@@ -210,7 +210,7 @@ public:
 
 protected:
   vtkArray();
-  ~vtkArray();
+  ~vtkArray() VTK_OVERRIDE;
 
 private:
   vtkArray(const vtkArray&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkArrayIterator.h b/Common/Core/vtkArrayIterator.h
index a81a3c3f7560d70ff62f4a70e3284cee4e8bf9f3..5f12b15afcdd863db8d7cae565cbbfcc6809b869 100644
--- a/Common/Core/vtkArrayIterator.h
+++ b/Common/Core/vtkArrayIterator.h
@@ -63,7 +63,7 @@ public:
   virtual int GetDataType()=0;
 protected:
   vtkArrayIterator();
-  ~vtkArrayIterator();
+  ~vtkArrayIterator() VTK_OVERRIDE;
 
 private:
   vtkArrayIterator(const vtkArrayIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkArrayIteratorTemplate.h b/Common/Core/vtkArrayIteratorTemplate.h
index bed2a41190b522f33efe72d75e745e9a5a8850fc..35f35a7e369bd83b614014fb205e2fd9c3b3c366 100644
--- a/Common/Core/vtkArrayIteratorTemplate.h
+++ b/Common/Core/vtkArrayIteratorTemplate.h
@@ -94,7 +94,7 @@ public:
   typedef T ValueType;
 protected:
   vtkArrayIteratorTemplate();
-  ~vtkArrayIteratorTemplate();
+  ~vtkArrayIteratorTemplate() VTK_OVERRIDE;
 
   T* Pointer;
 private:
diff --git a/Common/Core/vtkBitArray.h b/Common/Core/vtkBitArray.h
index b7f87b187e91878baf58b629d5a511d0f3f94bde..f25c9f4c7a40acb90b4991b8285703b43f11f511 100644
--- a/Common/Core/vtkBitArray.h
+++ b/Common/Core/vtkBitArray.h
@@ -56,34 +56,34 @@ public:
   // This method assumes that the two arrays have the same type
   // and structure. Note that range checking and memory allocation is not
   // performed; use in conjunction with SetNumberOfTuples() to allocate space.
-  virtual void SetTuple(vtkIdType i, vtkIdType j,
+  void SetTuple(vtkIdType i, vtkIdType j,
                         vtkAbstractArray* source) VTK_OVERRIDE;
 
   // Description:
   // Insert the jth tuple in the source array, at ith location in this array.
   // Note that memory allocation is performed as necessary to hold the data.
-  virtual void InsertTuple(vtkIdType i, vtkIdType j,
+  void InsertTuple(vtkIdType i, vtkIdType j,
                            vtkAbstractArray* source) VTK_OVERRIDE;
 
   // Description:
   // Copy the tuples indexed in srcIds from the source array to the tuple
   // locations indexed by dstIds in this array.
   // Note that memory allocation is performed as necessary to hold the data.
-  virtual void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds,
+  void InsertTuples(vtkIdList *dstIds, vtkIdList *srcIds,
                             vtkAbstractArray *source) VTK_OVERRIDE;
 
   // Description:
   // Copy n consecutive tuples starting at srcStart from the source array to
   // this array, starting at the dstStart location.
   // Note that memory allocation is performed as necessary to hold the data.
-  virtual void InsertTuples(vtkIdType dstStart, vtkIdType n, vtkIdType srcStart,
+  void InsertTuples(vtkIdType dstStart, vtkIdType n, vtkIdType srcStart,
                             vtkAbstractArray* source) VTK_OVERRIDE;
 
   // Description:
   // Insert the jth tuple in the source array, at the end in this array.
   // Note that memory allocation is performed as necessary to hold the data.
   // Returns the location at which the data was inserted.
-  virtual vtkIdType InsertNextTuple(vtkIdType j,
+  vtkIdType InsertNextTuple(vtkIdType j,
                                     vtkAbstractArray* source) VTK_OVERRIDE;
 
   // Description:
@@ -115,9 +115,9 @@ public:
   // These methods remove tuples from the data array. They shift data and
   // resize array, so the data array is still valid after this operation. Note,
   // this operation is fairly slow.
-  virtual void RemoveTuple(vtkIdType id) VTK_OVERRIDE;
-  virtual void RemoveFirstTuple() VTK_OVERRIDE;
-  virtual void RemoveLastTuple() VTK_OVERRIDE;
+  void RemoveTuple(vtkIdType id) VTK_OVERRIDE;
+  void RemoveFirstTuple() VTK_OVERRIDE;
+  void RemoveLastTuple() VTK_OVERRIDE;
 
   // Description:
   // Set the data component at the ith tuple and jth component location.
@@ -246,7 +246,7 @@ public:
 
 protected:
   vtkBitArray();
-  ~vtkBitArray();
+  ~vtkBitArray() VTK_OVERRIDE;
 
   unsigned char *Array;   // pointer to data
   unsigned char *ResizeAndExtend(vtkIdType sz);
diff --git a/Common/Core/vtkBitArrayIterator.h b/Common/Core/vtkBitArrayIterator.h
index a24295aaf12c9380f1fc8608391303b1edeb2aa6..cc97c132128bbd8714f90006a48f979d287ddad4 100644
--- a/Common/Core/vtkBitArrayIterator.h
+++ b/Common/Core/vtkBitArrayIterator.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkBitArrayIterator();
-  ~vtkBitArrayIterator();
+  ~vtkBitArrayIterator() VTK_OVERRIDE;
 
   int *Tuple;
   int TupleSize;
diff --git a/Common/Core/vtkBoxMuellerRandomSequence.h b/Common/Core/vtkBoxMuellerRandomSequence.h
index d6d6fabff458ab0fc6fadc2285726bb81fd7b17a..6b0143c1a3afdd30608ebb32084eac79a1516f43 100644
--- a/Common/Core/vtkBoxMuellerRandomSequence.h
+++ b/Common/Core/vtkBoxMuellerRandomSequence.h
@@ -53,7 +53,7 @@ public:
 
 protected:
   vtkBoxMuellerRandomSequence();
-  virtual ~vtkBoxMuellerRandomSequence();
+  ~vtkBoxMuellerRandomSequence() VTK_OVERRIDE;
 
   vtkRandomSequence *UniformSequence;
   double Value;
diff --git a/Common/Core/vtkBuffer.h b/Common/Core/vtkBuffer.h
index 6ee330a5d4c0b42bb43d853b35b242f3ccdb7b83..87f803412b8b08c919d11e50b05b17c23ce6bdde 100644
--- a/Common/Core/vtkBuffer.h
+++ b/Common/Core/vtkBuffer.h
@@ -75,7 +75,7 @@ protected:
   {
   }
 
-  ~vtkBuffer()
+  ~vtkBuffer() VTK_OVERRIDE
   {
     this->SetBuffer(NULL, 0);
   }
diff --git a/Common/Core/vtkByteSwap.h b/Common/Core/vtkByteSwap.h
index dd440961c612cba9bf9c8c51c2feae7ee9463d34..cb213e7558283828b6c71f1f2cdd271e57675ea3 100644
--- a/Common/Core/vtkByteSwap.h
+++ b/Common/Core/vtkByteSwap.h
@@ -108,7 +108,7 @@ public:
 
 protected:
   vtkByteSwap();
-  ~vtkByteSwap();
+  ~vtkByteSwap() VTK_OVERRIDE;
 
 private:
   vtkByteSwap(const vtkByteSwap&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkCallbackCommand.h b/Common/Core/vtkCallbackCommand.h
index fff7d5981cbaffbb11ae3810c992b6499a852896..2b48a8c7f332bccc37a4e82790f70d5f526b32de 100644
--- a/Common/Core/vtkCallbackCommand.h
+++ b/Common/Core/vtkCallbackCommand.h
@@ -90,7 +90,7 @@ protected:
   void *ClientData;
 
   vtkCallbackCommand();
-  ~vtkCallbackCommand();
+  ~vtkCallbackCommand() VTK_OVERRIDE;
 };
 
 #endif
diff --git a/Common/Core/vtkCharArray.h b/Common/Core/vtkCharArray.h
index b2975819eb665112417c933cb8498dc61a7a5ccf..1d4427fd62924f767a3a60c297666157481aa3f9 100644
--- a/Common/Core/vtkCharArray.h
+++ b/Common/Core/vtkCharArray.h
@@ -63,7 +63,7 @@ public:
 
 protected:
   vtkCharArray();
-  ~vtkCharArray();
+  ~vtkCharArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkCollection.h b/Common/Core/vtkCollection.h
index 5aae87adbacbbe2175543d8aab2784bc9398364d..3f3cd85adb333a1deff6ae10d75a6fb436da4ab9 100644
--- a/Common/Core/vtkCollection.h
+++ b/Common/Core/vtkCollection.h
@@ -129,7 +129,7 @@ public:
   void UnRegister(vtkObjectBase* o) VTK_OVERRIDE;
 protected:
   vtkCollection();
-  ~vtkCollection();
+  ~vtkCollection() VTK_OVERRIDE;
 
   virtual void RemoveElement(vtkCollectionElement *element,
                              vtkCollectionElement *previous);
diff --git a/Common/Core/vtkCollectionIterator.h b/Common/Core/vtkCollectionIterator.h
index bfe49ab1b2acfef69aedcd54fb31457d08bfdf5c..9a0dc788196b8bc258dc7a7f41224190f3ee87c5 100644
--- a/Common/Core/vtkCollectionIterator.h
+++ b/Common/Core/vtkCollectionIterator.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkCollectionIterator();
-  ~vtkCollectionIterator();
+  ~vtkCollectionIterator() VTK_OVERRIDE;
 
   // The collection over which we are iterating.
   vtkCollection* Collection;
diff --git a/Common/Core/vtkCommand.h b/Common/Core/vtkCommand.h
index 4d3c382ae64580012c994e5c232282dfd1e15e6a..b8378b8e428dc9d3ec512b642af10d7aca0c2051 100644
--- a/Common/Core/vtkCommand.h
+++ b/Common/Core/vtkCommand.h
@@ -408,7 +408,7 @@ protected:
   int PassiveObserver;
 
   vtkCommand();
-  virtual ~vtkCommand() {}
+  ~vtkCommand() VTK_OVERRIDE {}
 
   friend class vtkSubjectHelper;
 
diff --git a/Common/Core/vtkCriticalSection.h b/Common/Core/vtkCriticalSection.h
index 2161a81f3758760c2c17c476d1bedd82bd2054dc..f71942fa01ed51262b5704d056426309ff56a2fe 100644
--- a/Common/Core/vtkCriticalSection.h
+++ b/Common/Core/vtkCriticalSection.h
@@ -56,7 +56,7 @@ public:
 protected:
   vtkSimpleCriticalSection SimpleCriticalSection;
   vtkCriticalSection() {}
-  ~vtkCriticalSection() {}
+  ~vtkCriticalSection() VTK_OVERRIDE {}
 
 private:
   vtkCriticalSection(const vtkCriticalSection&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkDataArray.h b/Common/Core/vtkDataArray.h
index 737cfde42e3f6a1a7de26f087efdfdebe76d5e16..80a3b4d0cef6dafbc64a822f94baf8cb8adb86fd 100644
--- a/Common/Core/vtkDataArray.h
+++ b/Common/Core/vtkDataArray.h
@@ -403,7 +403,7 @@ protected:
 
   // Construct object with default tuple dimension (number of components) of 1.
   vtkDataArray();
-  ~vtkDataArray();
+  ~vtkDataArray() VTK_OVERRIDE;
 
   vtkLookupTable *LookupTable;
   double Range[2];
diff --git a/Common/Core/vtkDataArrayCollection.h b/Common/Core/vtkDataArrayCollection.h
index 0a1ea3afe49cc949e18ba03b22ad768c452fad36..39dd1e9686b6dfcfa1c456689cbc3c1ca7222c06 100644
--- a/Common/Core/vtkDataArrayCollection.h
+++ b/Common/Core/vtkDataArrayCollection.h
@@ -56,7 +56,7 @@ public:
 
 protected:
   vtkDataArrayCollection() {}
-  ~vtkDataArrayCollection() {}
+  ~vtkDataArrayCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/Core/vtkDataArrayCollectionIterator.h b/Common/Core/vtkDataArrayCollectionIterator.h
index da97aa4d3a7e90a3bf96bc327d89746c49f0355e..77b3c2bfdc6aab3d4d9f9f60f2e506a3d1bf5b0d 100644
--- a/Common/Core/vtkDataArrayCollectionIterator.h
+++ b/Common/Core/vtkDataArrayCollectionIterator.h
@@ -46,7 +46,7 @@ public:
 
 protected:
   vtkDataArrayCollectionIterator();
-  ~vtkDataArrayCollectionIterator();
+  ~vtkDataArrayCollectionIterator() VTK_OVERRIDE;
 
 private:
   vtkDataArrayCollectionIterator(const vtkDataArrayCollectionIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkDataArraySelection.h b/Common/Core/vtkDataArraySelection.h
index 73b7a6db33461f84bb884cac04fccb560af782f8..c34f0209cdf984844b43a734348bc494889fa1f2 100644
--- a/Common/Core/vtkDataArraySelection.h
+++ b/Common/Core/vtkDataArraySelection.h
@@ -129,7 +129,7 @@ public:
   void CopySelections(vtkDataArraySelection* selections);
 protected:
   vtkDataArraySelection();
-  ~vtkDataArraySelection();
+  ~vtkDataArraySelection() VTK_OVERRIDE;
 
   // Internal implementation details.
   vtkDataArraySelectionInternals* Internal;
diff --git a/Common/Core/vtkDebugLeaks.h b/Common/Core/vtkDebugLeaks.h
index 7cca6c94e875c1a92586b52b82ef41374de74bb5..8ecd9abd4a195f23d17e22ad556d84c9944b3ba5 100644
--- a/Common/Core/vtkDebugLeaks.h
+++ b/Common/Core/vtkDebugLeaks.h
@@ -66,7 +66,7 @@ public:
 
 protected:
   vtkDebugLeaks(){}
-  virtual ~vtkDebugLeaks(){}
+  ~vtkDebugLeaks() VTK_OVERRIDE{}
 
   static int DisplayMessageBox(const char*);
 
diff --git a/Common/Core/vtkDenseArray.h b/Common/Core/vtkDenseArray.h
index b4d7fd09dcf9133f763f00a49a994c8efef24092..4b0e37814f001df6239ab5ae08e5aeb94cfc5775 100644
--- a/Common/Core/vtkDenseArray.h
+++ b/Common/Core/vtkDenseArray.h
@@ -102,8 +102,8 @@ public:
   {
   public:
     HeapMemoryBlock(const vtkArrayExtents& extents);
-    virtual ~HeapMemoryBlock();
-    virtual T* GetAddress();
+    ~HeapMemoryBlock() VTK_OVERRIDE;
+    T* GetAddress() VTK_OVERRIDE;
 
   private:
     T* Storage;
@@ -159,7 +159,7 @@ public:
 
 protected:
   vtkDenseArray();
-  ~vtkDenseArray();
+  ~vtkDenseArray() VTK_OVERRIDE;
 
 private:
   vtkDenseArray(const vtkDenseArray&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkDoubleArray.h b/Common/Core/vtkDoubleArray.h
index 15c6671a84bc7fc10dd2f37a8b270e6b97701ca5..6408196bf0b2ed4a7156bae32d73eb5dbff8e5c8 100644
--- a/Common/Core/vtkDoubleArray.h
+++ b/Common/Core/vtkDoubleArray.h
@@ -63,7 +63,7 @@ public:
 
 protected:
   vtkDoubleArray();
-  ~vtkDoubleArray();
+  ~vtkDoubleArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkDynamicLoader.h b/Common/Core/vtkDynamicLoader.h
index c055aa2478abc4eb8acdc423788d8bbaedc074d0..3e04c50e333a98e95317fbae88a130bf48bbc156 100644
--- a/Common/Core/vtkDynamicLoader.h
+++ b/Common/Core/vtkDynamicLoader.h
@@ -66,7 +66,7 @@ public:
 
 protected:
   vtkDynamicLoader() {}
-  ~vtkDynamicLoader() {}
+  ~vtkDynamicLoader() VTK_OVERRIDE {}
 
 private:
   vtkDynamicLoader(const vtkDynamicLoader&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkEventForwarderCommand.h b/Common/Core/vtkEventForwarderCommand.h
index b19993491cd1f7a8219b6ab2cc529cf5d273d847..baabcb2096d413b83b506e69ebffc2ee9f0a4c8a 100644
--- a/Common/Core/vtkEventForwarderCommand.h
+++ b/Common/Core/vtkEventForwarderCommand.h
@@ -58,7 +58,7 @@ protected:
   vtkObject *Target;
 
   vtkEventForwarderCommand();
-  ~vtkEventForwarderCommand() {}
+  ~vtkEventForwarderCommand() VTK_OVERRIDE {}
 };
 
 #endif /* vtkEventForwarderCommand_h */
diff --git a/Common/Core/vtkFileOutputWindow.h b/Common/Core/vtkFileOutputWindow.h
index c5b980df8a8f207a708fbe9ee9d2bbc6c1e949b6..a926505ef42b298130d03211c0f8535a59ca43c9 100644
--- a/Common/Core/vtkFileOutputWindow.h
+++ b/Common/Core/vtkFileOutputWindow.h
@@ -62,7 +62,7 @@ public:
 
 protected:
   vtkFileOutputWindow();
-  virtual ~vtkFileOutputWindow();
+  ~vtkFileOutputWindow() VTK_OVERRIDE;
   void Initialize();
 
   char* FileName;
diff --git a/Common/Core/vtkFloatArray.h b/Common/Core/vtkFloatArray.h
index 891c46078a3321fde71c01ac19889948ab4720a5..9903ab8aee9f718630f13c6650c5a5d997248cf5 100644
--- a/Common/Core/vtkFloatArray.h
+++ b/Common/Core/vtkFloatArray.h
@@ -65,7 +65,7 @@ public:
 
 protected:
   vtkFloatArray();
-  ~vtkFloatArray();
+  ~vtkFloatArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkGarbageCollector.h b/Common/Core/vtkGarbageCollector.h
index 9f81ad17b1e9c6d6d3e1e3c05b8bf79daf13f8aa..41348b49eefbc26d44c4bb69864bb08153378320 100644
--- a/Common/Core/vtkGarbageCollector.h
+++ b/Common/Core/vtkGarbageCollector.h
@@ -138,7 +138,7 @@ public:
 
 protected:
   vtkGarbageCollector();
-  ~vtkGarbageCollector();
+  ~vtkGarbageCollector() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkGaussianRandomSequence.h b/Common/Core/vtkGaussianRandomSequence.h
index aa7522eb3c35dab8ac59821127f5a6913462318e..6bee5fdcfd885b256752c31cbf95401f33f0ef1f 100644
--- a/Common/Core/vtkGaussianRandomSequence.h
+++ b/Common/Core/vtkGaussianRandomSequence.h
@@ -41,7 +41,7 @@ public:
 
 protected:
   vtkGaussianRandomSequence();
-  virtual ~vtkGaussianRandomSequence();
+  ~vtkGaussianRandomSequence() VTK_OVERRIDE;
 private:
   vtkGaussianRandomSequence(const vtkGaussianRandomSequence&) VTK_DELETE_FUNCTION;
   void operator=(const vtkGaussianRandomSequence&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkIdList.h b/Common/Core/vtkIdList.h
index 20ca62895a7c3056c4af70ec5f6c89a5a28391d0..3f7e836e3708f082df12d4ca32fd18555333882d 100644
--- a/Common/Core/vtkIdList.h
+++ b/Common/Core/vtkIdList.h
@@ -126,7 +126,7 @@ public:
 
 protected:
   vtkIdList();
-  ~vtkIdList();
+  ~vtkIdList() VTK_OVERRIDE;
 
   vtkIdType NumberOfIds;
   vtkIdType Size;
diff --git a/Common/Core/vtkIdListCollection.h b/Common/Core/vtkIdListCollection.h
index 3c07ac11a771b9433fc61482068ce8166c44b35c..ba8f5416c210aae45170d14db755c6eefa65bf53 100644
--- a/Common/Core/vtkIdListCollection.h
+++ b/Common/Core/vtkIdListCollection.h
@@ -56,7 +56,7 @@ public:
 
 protected:
   vtkIdListCollection() {}
-  ~vtkIdListCollection() {}
+  ~vtkIdListCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/Core/vtkIdTypeArray.h b/Common/Core/vtkIdTypeArray.h
index 48c4740fc2426cbaf3d6c253ecd48ce54863391d..82d6f6fbc483f475d5cbb90746e0883da66b21f3 100644
--- a/Common/Core/vtkIdTypeArray.h
+++ b/Common/Core/vtkIdTypeArray.h
@@ -76,7 +76,7 @@ public:
 
 protected:
   vtkIdTypeArray();
-  ~vtkIdTypeArray();
+  ~vtkIdTypeArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkInformation.h b/Common/Core/vtkInformation.h
index e082945ac637b277c5dec2dc4aed2810b5e43b43..0d7729d841937a46401f1cd78a62deb7b7699964 100644
--- a/Common/Core/vtkInformation.h
+++ b/Common/Core/vtkInformation.h
@@ -405,7 +405,7 @@ public:
 
 protected:
   VTKCOMMONCORE_EXPORT vtkInformation();
-  VTKCOMMONCORE_EXPORT ~vtkInformation();
+  VTKCOMMONCORE_EXPORT ~vtkInformation() VTK_OVERRIDE;
 
   // Get/Set a map entry directly through the vtkObjectBase instance
   // representing the value.  Used internally to manage the map.
diff --git a/Common/Core/vtkInformationDataObjectKey.h b/Common/Core/vtkInformationDataObjectKey.h
index 385236c74852e4fc0f9fdd418d58bbdf8e15e130..94e4232ff0d1602acbcc21b2de83559bbd0101d6 100644
--- a/Common/Core/vtkInformationDataObjectKey.h
+++ b/Common/Core/vtkInformationDataObjectKey.h
@@ -34,7 +34,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationDataObjectKey(const char* name, const char* location);
-  ~vtkInformationDataObjectKey();
+  ~vtkInformationDataObjectKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationDataObjectKey, given a
diff --git a/Common/Core/vtkInformationDoubleKey.h b/Common/Core/vtkInformationDoubleKey.h
index 38176c7aed5fb69855be81cd11706dc0b5065788..889545bec9a920bb61bef90ac60b82592122a484 100644
--- a/Common/Core/vtkInformationDoubleKey.h
+++ b/Common/Core/vtkInformationDoubleKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationDoubleKey(const char* name, const char* location);
-  ~vtkInformationDoubleKey();
+  ~vtkInformationDoubleKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationDoubleKey, given a
diff --git a/Common/Core/vtkInformationDoubleVectorKey.h b/Common/Core/vtkInformationDoubleVectorKey.h
index f487436c8c9577efd4690e13698f9321da46bb73..9ebceb5fa63f0c7a5c6130211a67216ca5084593 100644
--- a/Common/Core/vtkInformationDoubleVectorKey.h
+++ b/Common/Core/vtkInformationDoubleVectorKey.h
@@ -33,7 +33,7 @@ public:
 
   vtkInformationDoubleVectorKey(const char* name, const char* location,
                                  int length=-1);
-  ~vtkInformationDoubleVectorKey();
+  ~vtkInformationDoubleVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationDoubleVectorKey, given a
diff --git a/Common/Core/vtkInformationIdTypeKey.h b/Common/Core/vtkInformationIdTypeKey.h
index 5d9cafec94564325744cbcc423154fc47e1ebf4a..4b833e69553b04fb818a8981ed881d4476948423 100644
--- a/Common/Core/vtkInformationIdTypeKey.h
+++ b/Common/Core/vtkInformationIdTypeKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationIdTypeKey(const char* name, const char* location);
-  ~vtkInformationIdTypeKey();
+  ~vtkInformationIdTypeKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationIdTypeKey, given a
diff --git a/Common/Core/vtkInformationInformationKey.h b/Common/Core/vtkInformationInformationKey.h
index 1328212a5def1f0151240a2523a75a0ac205ce0e..fcef05cfad47c7f52b371a4695e8dedb442dfc92 100644
--- a/Common/Core/vtkInformationInformationKey.h
+++ b/Common/Core/vtkInformationInformationKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationInformationKey(const char* name, const char* location);
-  ~vtkInformationInformationKey();
+  ~vtkInformationInformationKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationInformationKey, given a
diff --git a/Common/Core/vtkInformationInformationVectorKey.h b/Common/Core/vtkInformationInformationVectorKey.h
index c54d9c2f452f400a919763c7a77fa7d475e49395..1beaa92381abd0a683effcd69ada44d40e0d6333 100644
--- a/Common/Core/vtkInformationInformationVectorKey.h
+++ b/Common/Core/vtkInformationInformationVectorKey.h
@@ -34,7 +34,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationInformationVectorKey(const char* name, const char* location);
-  ~vtkInformationInformationVectorKey();
+  ~vtkInformationInformationVectorKey() VTK_OVERRIDE;
 
   // Description:
   // Get/Set the value associated with this key in the given
diff --git a/Common/Core/vtkInformationIntegerKey.h b/Common/Core/vtkInformationIntegerKey.h
index 1ca8f040b389db016e2ed5a962addb57c19432b1..392410f120c76d988da7f37c64f4a868fb3e7b57 100644
--- a/Common/Core/vtkInformationIntegerKey.h
+++ b/Common/Core/vtkInformationIntegerKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationIntegerKey(const char* name, const char* location);
-  ~vtkInformationIntegerKey();
+  ~vtkInformationIntegerKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationIntegerKey, given a
diff --git a/Common/Core/vtkInformationIntegerPointerKey.h b/Common/Core/vtkInformationIntegerPointerKey.h
index 4671d81c809378df91b2d9892c78dc028202cb4a..a64db64fb43321adac20a4fc1061c9e16812f2ed 100644
--- a/Common/Core/vtkInformationIntegerPointerKey.h
+++ b/Common/Core/vtkInformationIntegerPointerKey.h
@@ -33,7 +33,7 @@ public:
 
   vtkInformationIntegerPointerKey(const char* name, const char* location,
                                  int length=-1);
-  ~vtkInformationIntegerPointerKey();
+  ~vtkInformationIntegerPointerKey() VTK_OVERRIDE;
 
   // Description:
   // Get/Set the value associated with this key in the given
diff --git a/Common/Core/vtkInformationIntegerVectorKey.h b/Common/Core/vtkInformationIntegerVectorKey.h
index 16168cd02ed5fbb71e693639d0c498b32718c5a7..e4c539d31687ce9d33698bd5b74b8fdaef3c663c 100644
--- a/Common/Core/vtkInformationIntegerVectorKey.h
+++ b/Common/Core/vtkInformationIntegerVectorKey.h
@@ -33,7 +33,7 @@ public:
 
   vtkInformationIntegerVectorKey(const char* name, const char* location,
                                  int length=-1);
-  ~vtkInformationIntegerVectorKey();
+  ~vtkInformationIntegerVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationIntegerVectorKey, given a
diff --git a/Common/Core/vtkInformationIterator.h b/Common/Core/vtkInformationIterator.h
index 73ffb88229327890f9f01edf438e748009837518..aaaa96797bf89be76804368fce02f9738bc12ff7 100644
--- a/Common/Core/vtkInformationIterator.h
+++ b/Common/Core/vtkInformationIterator.h
@@ -74,7 +74,7 @@ public:
 
 protected:
   vtkInformationIterator();
-  ~vtkInformationIterator();
+  ~vtkInformationIterator() VTK_OVERRIDE;
 
   vtkInformation* Information;
   vtkInformationIteratorInternals* Internal;
diff --git a/Common/Core/vtkInformationKey.h b/Common/Core/vtkInformationKey.h
index 02a2ba9461f81237c40ec54379986794a1ec8116..8be25657534fbb35cf506fe7a97418075473f3cc 100644
--- a/Common/Core/vtkInformationKey.h
+++ b/Common/Core/vtkInformationKey.h
@@ -63,7 +63,7 @@ public:
   // should be passed to the constructor.  They must be string
   // literals because the strings are not copied.
   vtkInformationKey(const char* name, const char* location);
-  ~vtkInformationKey();
+  ~vtkInformationKey() VTK_OVERRIDE;
 
   // Description:
   // Copy the entry associated with this key from one information
diff --git a/Common/Core/vtkInformationKeyLookup.h b/Common/Core/vtkInformationKeyLookup.h
index b093271cbc6a9c79ecc9e230f123f753a1003118..28d88430ca4741520267736ad6095c31c2a719b8 100644
--- a/Common/Core/vtkInformationKeyLookup.h
+++ b/Common/Core/vtkInformationKeyLookup.h
@@ -48,7 +48,7 @@ public:
 
 protected:
     vtkInformationKeyLookup();
-    ~vtkInformationKeyLookup();
+    ~vtkInformationKeyLookup() VTK_OVERRIDE;
 
     friend class vtkInformationKey;
 
diff --git a/Common/Core/vtkInformationKeyVectorKey.h b/Common/Core/vtkInformationKeyVectorKey.h
index c4e003b8654786ee30ee589e0c26ee0513087465..c887ae540578867bde409c955f7170a438ea97a7 100644
--- a/Common/Core/vtkInformationKeyVectorKey.h
+++ b/Common/Core/vtkInformationKeyVectorKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationKeyVectorKey(const char* name, const char* location);
-  ~vtkInformationKeyVectorKey();
+  ~vtkInformationKeyVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationKeyVectorKey, given a
diff --git a/Common/Core/vtkInformationObjectBaseKey.h b/Common/Core/vtkInformationObjectBaseKey.h
index 051e6624cf5df653acf4f7fdfe0ce7c698d0fb1b..17672b28b7404ef9200b1116aad2e91574803baa 100644
--- a/Common/Core/vtkInformationObjectBaseKey.h
+++ b/Common/Core/vtkInformationObjectBaseKey.h
@@ -35,7 +35,7 @@ public:
 
   vtkInformationObjectBaseKey(const char* name, const char* location,
                               const char* requiredClass=0);
-  ~vtkInformationObjectBaseKey();
+  ~vtkInformationObjectBaseKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationObjectBaseKey, given a
diff --git a/Common/Core/vtkInformationObjectBaseVectorKey.h b/Common/Core/vtkInformationObjectBaseVectorKey.h
index 0288941ecaa93f4b2c8211078d829fdf957d7781..81a388893d30903210d4a2fd35a06912d4c04dfc 100644
--- a/Common/Core/vtkInformationObjectBaseVectorKey.h
+++ b/Common/Core/vtkInformationObjectBaseVectorKey.h
@@ -44,7 +44,7 @@ public:
                                     const char* location,
                                     const char* requiredClass=0);
   //
-  ~vtkInformationObjectBaseVectorKey();
+  ~vtkInformationObjectBaseVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationObjectBaseVectorKey, given a
diff --git a/Common/Core/vtkInformationRequestKey.h b/Common/Core/vtkInformationRequestKey.h
index 93a1b314049f485b856c6550d8e97200853be353..b69aa37dc767c2f169f5d898d1e4ef0c051a0604 100644
--- a/Common/Core/vtkInformationRequestKey.h
+++ b/Common/Core/vtkInformationRequestKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationRequestKey(const char* name, const char* location);
-  ~vtkInformationRequestKey();
+  ~vtkInformationRequestKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationRequestKey, given a
diff --git a/Common/Core/vtkInformationStringKey.h b/Common/Core/vtkInformationStringKey.h
index ea380843f7282cccd54c8e8b8a73e329deaa9053..31a6f5625a753822771fdefc44de8029297e9b6b 100644
--- a/Common/Core/vtkInformationStringKey.h
+++ b/Common/Core/vtkInformationStringKey.h
@@ -34,7 +34,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationStringKey(const char* name, const char* location);
-  ~vtkInformationStringKey();
+  ~vtkInformationStringKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationStringKey, given a
diff --git a/Common/Core/vtkInformationStringVectorKey.h b/Common/Core/vtkInformationStringVectorKey.h
index ef1f370a6569e722d9cb85ed3c763a23a50eadee..4dde517bba2d7274b40eb2ad525674f9ee9dfb97 100644
--- a/Common/Core/vtkInformationStringVectorKey.h
+++ b/Common/Core/vtkInformationStringVectorKey.h
@@ -35,7 +35,7 @@ public:
 
   vtkInformationStringVectorKey(const char* name, const char* location,
                                  int length=-1);
-  ~vtkInformationStringVectorKey();
+  ~vtkInformationStringVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationStringVectorKey, given a
diff --git a/Common/Core/vtkInformationUnsignedLongKey.h b/Common/Core/vtkInformationUnsignedLongKey.h
index 06dbc85ebfd0ac8c03bde4c266da511bc905b0bb..37f65d9b01f48e5026140d4b427a0943b7935776 100644
--- a/Common/Core/vtkInformationUnsignedLongKey.h
+++ b/Common/Core/vtkInformationUnsignedLongKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationUnsignedLongKey(const char* name, const char* location);
-  ~vtkInformationUnsignedLongKey();
+  ~vtkInformationUnsignedLongKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationUnsignedLongKey, given a
diff --git a/Common/Core/vtkInformationVariantKey.h b/Common/Core/vtkInformationVariantKey.h
index 9af7eb329ccb06ca52c07809de9d9fbb205cb08c..ec018186a4f3a94fe7b07d8083bd3e25a63b1b5f 100644
--- a/Common/Core/vtkInformationVariantKey.h
+++ b/Common/Core/vtkInformationVariantKey.h
@@ -34,7 +34,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationVariantKey(const char* name, const char* location);
-  ~vtkInformationVariantKey();
+  ~vtkInformationVariantKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationVariantKey, given a
diff --git a/Common/Core/vtkInformationVariantVectorKey.h b/Common/Core/vtkInformationVariantVectorKey.h
index 1d8478437bdb2658f463e5b1d0c33f64b8019b2c..568495956e21fc6bae4d7d73db8bb394a78db17e 100644
--- a/Common/Core/vtkInformationVariantVectorKey.h
+++ b/Common/Core/vtkInformationVariantVectorKey.h
@@ -35,7 +35,7 @@ public:
 
   vtkInformationVariantVectorKey(const char* name, const char* location,
                                  int length=-1);
-  ~vtkInformationVariantVectorKey();
+  ~vtkInformationVariantVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationVariantVectorKey, given a
diff --git a/Common/Core/vtkInformationVector.h b/Common/Core/vtkInformationVector.h
index 5c1e7a87a65d2d431811dbdbe08a8eb2b320eb3a..38745dfe0c98ccc05c5fb54c688b0500d1f4ab66 100644
--- a/Common/Core/vtkInformationVector.h
+++ b/Common/Core/vtkInformationVector.h
@@ -73,7 +73,7 @@ public:
 
 protected:
   vtkInformationVector();
-  ~vtkInformationVector();
+  ~vtkInformationVector() VTK_OVERRIDE;
 
   // Internal implementation details.
   vtkInformationVectorInternals* Internal;
diff --git a/Common/Core/vtkInstantiator.h b/Common/Core/vtkInstantiator.h
index 4f2cd2eef376bc531fb8644e2df7f17f75df8c66..bd06b81737ea2e42fed5ddd74ee2788072760cf0 100644
--- a/Common/Core/vtkInstantiator.h
+++ b/Common/Core/vtkInstantiator.h
@@ -95,7 +95,7 @@ public:
 
 protected:
   vtkInstantiator();
-  ~vtkInstantiator();
+  ~vtkInstantiator() VTK_OVERRIDE;
 
   // Internal storage for registered creation functions.
   static vtkInstantiatorHashTable* CreatorTable;
diff --git a/Common/Core/vtkIntArray.h b/Common/Core/vtkIntArray.h
index 09108e05447db484f4ad03a3551944dd7c597ddc..9b96b3b857ecf9fa82e4bd9f006d57245d7c3009 100644
--- a/Common/Core/vtkIntArray.h
+++ b/Common/Core/vtkIntArray.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkIntArray();
-  ~vtkIntArray();
+  ~vtkIntArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkLongArray.h b/Common/Core/vtkLongArray.h
index a858113744274561810801c9e8cd9ce8992ae399..3e2a26a913c217e474d743e05bc23df40aff36eb 100644
--- a/Common/Core/vtkLongArray.h
+++ b/Common/Core/vtkLongArray.h
@@ -68,7 +68,7 @@ public:
 
 protected:
   vtkLongArray();
-  ~vtkLongArray();
+  ~vtkLongArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkLongLongArray.h b/Common/Core/vtkLongLongArray.h
index 646dd0885354eb3996abc686f62bc33297a0f640..e5bd4355c41452ab3721c1762c1aa5fa1e8e9a43 100644
--- a/Common/Core/vtkLongLongArray.h
+++ b/Common/Core/vtkLongLongArray.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkLongLongArray();
-  ~vtkLongLongArray();
+  ~vtkLongLongArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkLookupTable.h b/Common/Core/vtkLookupTable.h
index 62cb0fbb6c093b5792cfa638e804a2fb48727b43..514a1048daaee1f9021873b9e09f7bea28db5599 100644
--- a/Common/Core/vtkLookupTable.h
+++ b/Common/Core/vtkLookupTable.h
@@ -348,7 +348,7 @@ public:
 
 protected:
   vtkLookupTable(int sze=256, int ext=256);
-  ~vtkLookupTable();
+  ~vtkLookupTable() VTK_OVERRIDE;
 
   vtkIdType NumberOfColors;
   vtkUnsignedCharArray *Table;
diff --git a/Common/Core/vtkMath.cxx b/Common/Core/vtkMath.cxx
index 8f2dd30a3050f1ec0d11f0ff338f9899ee4e67ee..273ad86024db738e046a80b572e68143b1b93df8 100644
--- a/Common/Core/vtkMath.cxx
+++ b/Common/Core/vtkMath.cxx
@@ -56,7 +56,7 @@ public:
   std::vector<vtkTypeInt64> MemoizeFactorial;
 private:
   vtkMathInternal();
-  ~vtkMathInternal();
+  ~vtkMathInternal() VTK_OVERRIDE;
 };
 
 vtkMathInternal::vtkMathInternal()
diff --git a/Common/Core/vtkMath.h b/Common/Core/vtkMath.h
index 61f362a586cb780dea9c47cb5133380ca7705e9b..9aa2635340ef0544a8d2f7b667f57feb3815eafd 100644
--- a/Common/Core/vtkMath.h
+++ b/Common/Core/vtkMath.h
@@ -991,7 +991,7 @@ public:
 
 protected:
   vtkMath() {}
-  ~vtkMath() {}
+  ~vtkMath() VTK_OVERRIDE {}
 
   static vtkSmartPointer<vtkMathInternal> Internal;
 private:
diff --git a/Common/Core/vtkMersenneTwister.h b/Common/Core/vtkMersenneTwister.h
index 98950dc676c4af291c9927b706dc25206b46faf0..d45fad1d3c8befd1b5a3696117fdc7747ba9d768 100644
--- a/Common/Core/vtkMersenneTwister.h
+++ b/Common/Core/vtkMersenneTwister.h
@@ -114,7 +114,7 @@ public:
 
 protected:
   vtkMersenneTwister();
-  virtual ~vtkMersenneTwister();
+  ~vtkMersenneTwister() VTK_OVERRIDE;
 
   vtkMersenneTwisterInternals* Internal;
 
diff --git a/Common/Core/vtkMinimalStandardRandomSequence.h b/Common/Core/vtkMinimalStandardRandomSequence.h
index 8b9346f7a37d361040f65ff430e1dbad48c37ff6..7254fe8038a7a4aa5c7cef38476c073867042784 100644
--- a/Common/Core/vtkMinimalStandardRandomSequence.h
+++ b/Common/Core/vtkMinimalStandardRandomSequence.h
@@ -101,7 +101,7 @@ public:
 
 protected:
   vtkMinimalStandardRandomSequence();
-  virtual ~vtkMinimalStandardRandomSequence();
+  ~vtkMinimalStandardRandomSequence() VTK_OVERRIDE;
   int Seed;
 private:
   vtkMinimalStandardRandomSequence(const vtkMinimalStandardRandomSequence&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkMultiThreader.h b/Common/Core/vtkMultiThreader.h
index a7dd2dd08567f9030cb75be47e6dd70fcea3f56f..476c9e7c12394beb6dd30edce8675eb81908db0d 100644
--- a/Common/Core/vtkMultiThreader.h
+++ b/Common/Core/vtkMultiThreader.h
@@ -189,7 +189,7 @@ public:
 
 protected:
   vtkMultiThreader();
-  ~vtkMultiThreader();
+  ~vtkMultiThreader() VTK_OVERRIDE;
 
   // The number of threads to use
   int                        NumberOfThreads;
diff --git a/Common/Core/vtkOStrStreamWrapper.h b/Common/Core/vtkOStrStreamWrapper.h
index 5c8a5b6af8d5de5a0a49e27e6b3026b17ef3cfaf..7a107eca4a7170561ef0f46bc2c7281cc816b1f4 100644
--- a/Common/Core/vtkOStrStreamWrapper.h
+++ b/Common/Core/vtkOStrStreamWrapper.h
@@ -37,7 +37,7 @@ public:
 
   // Description:
   // Destructor frees all used memory.
-  ~vtkOStrStreamWrapper();
+  ~vtkOStrStreamWrapper() VTK_OVERRIDE;
 
   // Description:
   // Get the string that has been written.  This call transfers
diff --git a/Common/Core/vtkObject.h b/Common/Core/vtkObject.h
index aa0abe5aa3f14c201bfb8d9ced9dc94b45b0c8b7..83774c67b0d6c9951bdf02c9927bd80c439674d9 100644
--- a/Common/Core/vtkObject.h
+++ b/Common/Core/vtkObject.h
@@ -213,7 +213,7 @@ public:
 
 protected:
   vtkObject();
-  virtual ~vtkObject();
+  ~vtkObject() VTK_OVERRIDE;
 
   // See vtkObjectBase.h.
   void RegisterInternal(vtkObjectBase*, vtkTypeBool check) VTK_OVERRIDE;
@@ -327,11 +327,11 @@ private:
         this->Method2 = NULL;
         this->Method3 = method;
         }
-      virtual ~vtkClassMemberCallback() { }
+      ~vtkClassMemberCallback() VTK_OVERRIDE { }
 
       // Called when the event is invoked
-      virtual bool operator()(
-        vtkObject* caller, unsigned long event, void* calldata)
+      bool operator()(
+        vtkObject* caller, unsigned long event, void* calldata) VTK_OVERRIDE
         {
         T *handler = this->Handler.GetPointer();
         if (handler)
diff --git a/Common/Core/vtkObjectFactory.cxx b/Common/Core/vtkObjectFactory.cxx
index 5938a9964f7e246f5a625ab8fddd47c08f120282..327e416339c4546e9ae54a056be2da4b0aa8620b 100644
--- a/Common/Core/vtkObjectFactory.cxx
+++ b/Common/Core/vtkObjectFactory.cxx
@@ -470,11 +470,11 @@ void vtkObjectFactory::RegisterOverride(const char* classOverride,
   this->GrowOverrideArray();
   int nextIndex = this->OverrideArrayLength;
   this->OverrideArrayLength++;
-  char* override = strcpy(new char[strlen(classOverride)+1], classOverride);
+  char* className = strcpy(new char[strlen(classOverride)+1], classOverride);
   char* desc = strcpy(new char[strlen(description)+1], description);
   char* ocn =  strcpy(new char[strlen(subclass)+1],
                       subclass);
-  this->OverrideClassNames[nextIndex] = override;
+  this->OverrideClassNames[nextIndex] = className;
   this->OverrideArray[nextIndex].Description = desc;
   this->OverrideArray[nextIndex].OverrideWithName = ocn;
   this->OverrideArray[nextIndex].EnabledFlag = enableFlag;
diff --git a/Common/Core/vtkObjectFactory.h b/Common/Core/vtkObjectFactory.h
index 575f104db83cb6048d6a30e14240767aa27c158f..f5ed6bdf4429d92aebb108f960299abd56b9ec19 100644
--- a/Common/Core/vtkObjectFactory.h
+++ b/Common/Core/vtkObjectFactory.h
@@ -200,7 +200,7 @@ protected:
   virtual vtkObject* CreateObject(const char* vtkclassname );
 
   vtkObjectFactory();
-  ~vtkObjectFactory();
+  ~vtkObjectFactory() VTK_OVERRIDE;
 
   struct OverrideInformation
   {
diff --git a/Common/Core/vtkObjectFactoryCollection.h b/Common/Core/vtkObjectFactoryCollection.h
index 8d7111baf74fa9a9290cbc6235241e0225fd44ff..5e38c69cdb4193eb9eb4a4f2ee1d0c4f9f7935b3 100644
--- a/Common/Core/vtkObjectFactoryCollection.h
+++ b/Common/Core/vtkObjectFactoryCollection.h
@@ -56,7 +56,7 @@ public:
 
 protected:
   vtkObjectFactoryCollection() {}
-  ~vtkObjectFactoryCollection() {}
+  ~vtkObjectFactoryCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/Core/vtkOldStyleCallbackCommand.h b/Common/Core/vtkOldStyleCallbackCommand.h
index 4207e20ddf249a09bcdc47ae9d3bfb9f7a663c7e..74dea7fa67fb9fb00a172a8f1cf9f006f288ca7f 100644
--- a/Common/Core/vtkOldStyleCallbackCommand.h
+++ b/Common/Core/vtkOldStyleCallbackCommand.h
@@ -64,7 +64,7 @@ public:
 
 protected:
   vtkOldStyleCallbackCommand();
-  ~vtkOldStyleCallbackCommand();
+  ~vtkOldStyleCallbackCommand() VTK_OVERRIDE;
 };
 
 
diff --git a/Common/Core/vtkOutputWindow.h b/Common/Core/vtkOutputWindow.h
index f9a05037d65424a356f59831a4902c1ec0702f78..c5ae9e1f16ee73eb6379c58f4efe869aa6100100 100644
--- a/Common/Core/vtkOutputWindow.h
+++ b/Common/Core/vtkOutputWindow.h
@@ -83,7 +83,7 @@ public:
 
 protected:
   vtkOutputWindow();
-  virtual ~vtkOutputWindow();
+  ~vtkOutputWindow() VTK_OVERRIDE;
   int PromptUser;
 private:
   static vtkOutputWindow* Instance;
diff --git a/Common/Core/vtkOverrideInformation.h b/Common/Core/vtkOverrideInformation.h
index af4f85aa485b3eaea56025397707d82ded53a35c..de17f16e414ac6eb065ff533b0aa3b49021deb8e 100644
--- a/Common/Core/vtkOverrideInformation.h
+++ b/Common/Core/vtkOverrideInformation.h
@@ -79,7 +79,7 @@ protected:
 
 private:
   vtkOverrideInformation();
-  ~vtkOverrideInformation();
+  ~vtkOverrideInformation() VTK_OVERRIDE;
   // allow the object factory to set the values in this
   // class, but only the object factory
 
diff --git a/Common/Core/vtkOverrideInformationCollection.h b/Common/Core/vtkOverrideInformationCollection.h
index 6915f73e547185dc5ad86841b46d32be02cc7c0d..9ab525c1866a72311edabfdda72515ae34d52fc6 100644
--- a/Common/Core/vtkOverrideInformationCollection.h
+++ b/Common/Core/vtkOverrideInformationCollection.h
@@ -51,7 +51,7 @@ public:
 
 protected:
   vtkOverrideInformationCollection() {}
-  ~vtkOverrideInformationCollection() {}
+  ~vtkOverrideInformationCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/Core/vtkPoints.h b/Common/Core/vtkPoints.h
index 5d07e1adbcf4a7cf5b4688e62cd0f41acbc30281..f3272f26a8228fe634a232c322655542927f9838 100644
--- a/Common/Core/vtkPoints.h
+++ b/Common/Core/vtkPoints.h
@@ -194,7 +194,7 @@ public:
 
 protected:
   vtkPoints(int dataType = VTK_FLOAT);
-  ~vtkPoints();
+  ~vtkPoints() VTK_OVERRIDE;
 
   double Bounds[6];
   vtkTimeStamp ComputeTime; // Time at which bounds computed
diff --git a/Common/Core/vtkPoints2D.h b/Common/Core/vtkPoints2D.h
index 7fac9942ac65171ed8d264aeb94db61a1225e9e4..ef63634985e0a3b6ae34702f63888fcb8480ff72 100644
--- a/Common/Core/vtkPoints2D.h
+++ b/Common/Core/vtkPoints2D.h
@@ -178,7 +178,7 @@ public:
 
 protected:
   vtkPoints2D(int dataType = VTK_FLOAT);
-  ~vtkPoints2D();
+  ~vtkPoints2D() VTK_OVERRIDE;
 
   double Bounds[4];
   vtkTimeStamp ComputeTime; // Time at which bounds computed
diff --git a/Common/Core/vtkPriorityQueue.h b/Common/Core/vtkPriorityQueue.h
index 4641f16268b00a35e58e700667f4b4e4d184e6c9..c419253ea564ee8a271d5bc5a9d137175958434c 100644
--- a/Common/Core/vtkPriorityQueue.h
+++ b/Common/Core/vtkPriorityQueue.h
@@ -110,7 +110,7 @@ public:
 
 protected:
   vtkPriorityQueue();
-  ~vtkPriorityQueue();
+  ~vtkPriorityQueue() VTK_OVERRIDE;
 
   Item *Resize(const vtkIdType sz);
 
diff --git a/Common/Core/vtkRandomSequence.h b/Common/Core/vtkRandomSequence.h
index 6d236440f4bf2ba5d9cdde6a4893b4da1c7795a4..189320cefbf4810036c20e6a2febc96deca5b7bb 100644
--- a/Common/Core/vtkRandomSequence.h
+++ b/Common/Core/vtkRandomSequence.h
@@ -47,7 +47,7 @@ public:
 
 protected:
   vtkRandomSequence();
-  virtual ~vtkRandomSequence();
+  ~vtkRandomSequence() VTK_OVERRIDE;
 private:
   vtkRandomSequence(const vtkRandomSequence&) VTK_DELETE_FUNCTION;
   void operator=(const vtkRandomSequence&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkReferenceCount.h b/Common/Core/vtkReferenceCount.h
index 6231a16c74cd251feed45504d2c7aa4bc1c3d895..e3a90fcb2d0b2e59d5046dad975e8543b9383812 100644
--- a/Common/Core/vtkReferenceCount.h
+++ b/Common/Core/vtkReferenceCount.h
@@ -34,7 +34,7 @@ public:
 
 protected:
   vtkReferenceCount();
-  ~vtkReferenceCount();
+  ~vtkReferenceCount() VTK_OVERRIDE;
 
 private:
   vtkReferenceCount(const vtkReferenceCount&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkSOADataArrayTemplate.h b/Common/Core/vtkSOADataArrayTemplate.h
index b69ebb815e232db8afef3012182d6a8e06409a18..29f508e7a8b4abd9e94492fd092c8ad447f8bbd9 100644
--- a/Common/Core/vtkSOADataArrayTemplate.h
+++ b/Common/Core/vtkSOADataArrayTemplate.h
@@ -175,7 +175,7 @@ public:
 
 protected:
   vtkSOADataArrayTemplate();
-  ~vtkSOADataArrayTemplate();
+  ~vtkSOADataArrayTemplate() VTK_OVERRIDE;
 
   // Description:
   // Allocate space for numTuples. Old data is not preserved. If numTuples == 0,
diff --git a/Common/Core/vtkScalarsToColors.h b/Common/Core/vtkScalarsToColors.h
index 14390be7b62e9379963cf278af328a30b38d2846..e01f14ae19fe6380fa64c46dedc566d9fcd6875b 100644
--- a/Common/Core/vtkScalarsToColors.h
+++ b/Common/Core/vtkScalarsToColors.h
@@ -334,7 +334,7 @@ public:
 
 protected:
   vtkScalarsToColors();
-  ~vtkScalarsToColors();
+  ~vtkScalarsToColors() VTK_OVERRIDE;
 
   // Description:
   // An internal method that assumes that the input already has the right
diff --git a/Common/Core/vtkShortArray.h b/Common/Core/vtkShortArray.h
index 23f2d350a242ff08656e13acb8e7ad0bcb6988f6..ca4a0049991aceaad12450e46aa3ff556b6d9f3b 100644
--- a/Common/Core/vtkShortArray.h
+++ b/Common/Core/vtkShortArray.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkShortArray();
-  ~vtkShortArray();
+  ~vtkShortArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkSignedCharArray.h b/Common/Core/vtkSignedCharArray.h
index 94ceed65da066aa4042151dfe915f9d96d66160c..499243b97130f441f4b3c71250ba66359f3cf580 100644
--- a/Common/Core/vtkSignedCharArray.h
+++ b/Common/Core/vtkSignedCharArray.h
@@ -63,7 +63,7 @@ public:
 
 protected:
   vtkSignedCharArray();
-  ~vtkSignedCharArray();
+  ~vtkSignedCharArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkSortDataArray.h b/Common/Core/vtkSortDataArray.h
index 7acc184831e24ec4b3896937b60a4961ec91ab28..119d61c04221cc1d5b536d884e3651ade88e804f 100644
--- a/Common/Core/vtkSortDataArray.h
+++ b/Common/Core/vtkSortDataArray.h
@@ -160,7 +160,7 @@ public:
 
 protected:
   vtkSortDataArray();
-  virtual ~vtkSortDataArray();
+  ~vtkSortDataArray() VTK_OVERRIDE;
 
   // A more efficient sort for single component arrays. This is delegated to
   // by the methods above (if appropriate).
diff --git a/Common/Core/vtkSparseArray.h b/Common/Core/vtkSparseArray.h
index 1a7e892adc8869ffd129eb41f4bf0da13d9bc412..ffea2f5917f3b4131ad264580c8d74db4f2d591a 100644
--- a/Common/Core/vtkSparseArray.h
+++ b/Common/Core/vtkSparseArray.h
@@ -193,7 +193,7 @@ public:
 
 protected:
   vtkSparseArray();
-  ~vtkSparseArray();
+  ~vtkSparseArray() VTK_OVERRIDE;
 
 private:
   vtkSparseArray(const vtkSparseArray&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkStringArray.h b/Common/Core/vtkStringArray.h
index 6ae62267d3924b6b37e6505683297866606d9386..42f204acb60db374a1bcdde28dc27ba2a026217d 100644
--- a/Common/Core/vtkStringArray.h
+++ b/Common/Core/vtkStringArray.h
@@ -282,7 +282,7 @@ public:
 
 protected:
   vtkStringArray();
-  ~vtkStringArray();
+  ~vtkStringArray() VTK_OVERRIDE;
 
   vtkStdString* Array;   // pointer to data
   vtkStdString* ResizeAndExtend(vtkIdType sz);  // function to resize data
diff --git a/Common/Core/vtkStringOutputWindow.h b/Common/Core/vtkStringOutputWindow.h
index 96ab9176d5574c79c81d719539948e97af3bb1ea..02652116e76dabff582829583b878bdf528c7a21 100644
--- a/Common/Core/vtkStringOutputWindow.h
+++ b/Common/Core/vtkStringOutputWindow.h
@@ -45,7 +45,7 @@ public:
 
 protected:
   vtkStringOutputWindow();
-  virtual ~vtkStringOutputWindow();
+  ~vtkStringOutputWindow() VTK_OVERRIDE;
   void Initialize();
 
   std::ostringstream OStream;
diff --git a/Common/Core/vtkTimePointUtility.h b/Common/Core/vtkTimePointUtility.h
index 90cd19abdf3372a99fe88baf1453d829f41a9868..7bc55c37a2749b6e1ccbc0f51508254563c6d547 100644
--- a/Common/Core/vtkTimePointUtility.h
+++ b/Common/Core/vtkTimePointUtility.h
@@ -148,7 +148,7 @@ public:
 
 protected:
   vtkTimePointUtility() {}
-  ~vtkTimePointUtility() {}
+  ~vtkTimePointUtility() VTK_OVERRIDE {}
 
 private:
   vtkTimePointUtility(const vtkTimePointUtility&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkTypedArray.h b/Common/Core/vtkTypedArray.h
index 7b1de8d1e95b45bb982577c7c8e9bd669e907e93..f42aac9f598a982a74e126a05ca42ef33af69469 100644
--- a/Common/Core/vtkTypedArray.h
+++ b/Common/Core/vtkTypedArray.h
@@ -106,7 +106,7 @@ public:
 
 protected:
   vtkTypedArray() {}
-  ~vtkTypedArray() {}
+  ~vtkTypedArray() VTK_OVERRIDE {}
 
 private:
   vtkTypedArray(const vtkTypedArray&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkTypedDataArray.h b/Common/Core/vtkTypedDataArray.h
index bb2cf976d276c4cb11dbcdee582617a034d805c8..316c10bb908a9ac9e79c6eda5854731cbeeb87db 100644
--- a/Common/Core/vtkTypedDataArray.h
+++ b/Common/Core/vtkTypedDataArray.h
@@ -77,17 +77,17 @@ public:
 
   // Description:
   // Return the VTK data type held by this array.
-  int GetDataType();
+  int GetDataType() VTK_OVERRIDE;
 
   // Description:
   // Return the size of the element type in bytes.
-  int GetDataTypeSize();
+  int GetDataTypeSize() VTK_OVERRIDE;
 
   // Description:
   // Specify the number of values for this object to hold. Does an
   // allocation as well as setting the MaxId ivar. Used in conjunction with
   // SetValue() method for fast insertion.
-  virtual void SetNumberOfValues(vtkIdType num);
+  void SetNumberOfValues(vtkIdType num) VTK_OVERRIDE;
 
   // Description:
   // Set the tuple value at the ith location in the array.
@@ -102,11 +102,6 @@ public:
   // Insert (memory allocation performed) the tuple onto the end of the array.
   virtual vtkIdType InsertNextTypedTuple(const ValueType *t) = 0;
 
-  // Description:
-  // Return the indices where a specific value appears.
-  virtual vtkIdType LookupTypedValue(ValueType value) = 0;
-  virtual void LookupTypedValue(ValueType value, vtkIdList *ids) = 0;
-
   // Description:
   // Get the data at a particular index.
   virtual ValueType GetValue(vtkIdType idx) const = 0;
@@ -137,7 +132,7 @@ public:
 
   // Description:
   // Method for type-checking in FastDownCast implementations.
-  virtual int GetArrayType() { return vtkAbstractArray::TypedDataArray; }
+  int GetArrayType() VTK_OVERRIDE { return vtkAbstractArray::TypedDataArray; }
 
   // Reintroduced as pure virtual since the base vtkGenericDataArray method
   // requires new allocation/resize APIs, though existing MappedDataArrays
diff --git a/Common/Core/vtkUnicodeStringArray.h b/Common/Core/vtkUnicodeStringArray.h
index 3b5b246084c9a209b391eaf2929ddcac2ff731cc..1cffb53930915c872b903c00c3838c817239e6d8 100644
--- a/Common/Core/vtkUnicodeStringArray.h
+++ b/Common/Core/vtkUnicodeStringArray.h
@@ -91,7 +91,7 @@ public:
 
 protected:
   vtkUnicodeStringArray();
-  ~vtkUnicodeStringArray();
+  ~vtkUnicodeStringArray() VTK_OVERRIDE;
 
 private:
   vtkUnicodeStringArray(const vtkUnicodeStringArray&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkUnsignedCharArray.h b/Common/Core/vtkUnsignedCharArray.h
index 1ae81c062f07c2d56f856a51ac98b0a233899466..1a6b4e0d1e1dffb0a74f88e147a357a6dcb03f5e 100644
--- a/Common/Core/vtkUnsignedCharArray.h
+++ b/Common/Core/vtkUnsignedCharArray.h
@@ -63,7 +63,7 @@ public:
 
 protected:
   vtkUnsignedCharArray();
-  ~vtkUnsignedCharArray();
+  ~vtkUnsignedCharArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkUnsignedIntArray.h b/Common/Core/vtkUnsignedIntArray.h
index 7797f1f0fa8300229728d76b33d25d9a5e6b2e05..3fe407afcd65fb343d1827909972672ba16ee600 100644
--- a/Common/Core/vtkUnsignedIntArray.h
+++ b/Common/Core/vtkUnsignedIntArray.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkUnsignedIntArray();
-  ~vtkUnsignedIntArray();
+  ~vtkUnsignedIntArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkUnsignedLongArray.h b/Common/Core/vtkUnsignedLongArray.h
index fa1b8d016a7df7747f513dbff13e2b78ea8765fb..df7b147085b1b3f5a0ce5c86b14f6ab9d67cb09c 100644
--- a/Common/Core/vtkUnsignedLongArray.h
+++ b/Common/Core/vtkUnsignedLongArray.h
@@ -69,7 +69,7 @@ public:
 
 protected:
   vtkUnsignedLongArray();
-  ~vtkUnsignedLongArray();
+  ~vtkUnsignedLongArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkUnsignedLongLongArray.h b/Common/Core/vtkUnsignedLongLongArray.h
index e8a69a7b0ea37d8137380148ad5853e99c8b3534..137390e2beaf529b98ba196c601f8e654fa0ce36 100644
--- a/Common/Core/vtkUnsignedLongLongArray.h
+++ b/Common/Core/vtkUnsignedLongLongArray.h
@@ -68,7 +68,7 @@ public:
 
 protected:
   vtkUnsignedLongLongArray();
-  ~vtkUnsignedLongLongArray();
+  ~vtkUnsignedLongLongArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkUnsignedShortArray.h b/Common/Core/vtkUnsignedShortArray.h
index 1fcf0835cfc00037b6dc21ed3d32d1db7f7a132f..56544a3cc445ace10da676803718d0c4272ad847 100644
--- a/Common/Core/vtkUnsignedShortArray.h
+++ b/Common/Core/vtkUnsignedShortArray.h
@@ -68,7 +68,7 @@ public:
 
 protected:
   vtkUnsignedShortArray();
-  ~vtkUnsignedShortArray();
+  ~vtkUnsignedShortArray() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/Core/vtkVariantArray.h b/Common/Core/vtkVariantArray.h
index 4c53b34f2e6ff4911a85aef84f7b6ac5adc33f19..e3830818b47843bcd4f81003c2bd287ed0cb8ffb 100644
--- a/Common/Core/vtkVariantArray.h
+++ b/Common/Core/vtkVariantArray.h
@@ -270,7 +270,7 @@ public:
   // Description:
   // This destructor is public to work around a bug in version 1.36.0 of
   // the Boost.Serialization library.
-  ~vtkVariantArray();
+  ~vtkVariantArray() VTK_OVERRIDE;
 
 protected:
   // Construct object with default tuple dimension (number of components) of 1.
diff --git a/Common/Core/vtkVersion.h b/Common/Core/vtkVersion.h
index 6a6b63066aa052ab3f272ec996264bc7054eddfe..3e66245f13ff78f3d1f58646eed0975cf3df3a6b 100644
--- a/Common/Core/vtkVersion.h
+++ b/Common/Core/vtkVersion.h
@@ -50,7 +50,7 @@ public:
 
 protected:
   vtkVersion() {} //insure constructor/destructor protected
-  ~vtkVersion() {}
+  ~vtkVersion() VTK_OVERRIDE {}
 private:
   vtkVersion(const vtkVersion&) VTK_DELETE_FUNCTION;
   void operator=(const vtkVersion&) VTK_DELETE_FUNCTION;
diff --git a/Common/Core/vtkVoidArray.h b/Common/Core/vtkVoidArray.h
index 033f0e7e2bbb908fc76ac5b0bb202ea0cebfbda7..163954648b838ce8228bda72c485e33261a7cf85 100644
--- a/Common/Core/vtkVoidArray.h
+++ b/Common/Core/vtkVoidArray.h
@@ -109,7 +109,7 @@ public:
 
 protected:
   vtkVoidArray();
-  ~vtkVoidArray();
+  ~vtkVoidArray() VTK_OVERRIDE;
 
   vtkIdType NumberOfPointers;
   vtkIdType Size;
diff --git a/Common/Core/vtkWindow.h b/Common/Core/vtkWindow.h
index 5e297a6a6bdee183a0587e1f35d9c2b344d13aeb..1cd86eab8258fcb08a7e38d553fd7a265d4f880b 100644
--- a/Common/Core/vtkWindow.h
+++ b/Common/Core/vtkWindow.h
@@ -156,7 +156,7 @@ public:
 protected:
   int OffScreenRendering;
   vtkWindow();
-  ~vtkWindow();
+  ~vtkWindow() VTK_OVERRIDE;
 
   char *WindowName;
   int Size[2];
diff --git a/Common/Core/vtkXMLFileOutputWindow.h b/Common/Core/vtkXMLFileOutputWindow.h
index 5ce46efd7d1c44c9e4ecbf8dbe2a51375c5f6ffd..d16cfbe20e7f3b8d6b2f39b7e742100d4e0b71ce 100644
--- a/Common/Core/vtkXMLFileOutputWindow.h
+++ b/Common/Core/vtkXMLFileOutputWindow.h
@@ -62,7 +62,7 @@ public:
 
 protected:
   vtkXMLFileOutputWindow() {}
-  virtual ~vtkXMLFileOutputWindow() {}
+  ~vtkXMLFileOutputWindow() VTK_OVERRIDE {}
 
   void Initialize();
   virtual void DisplayXML(const char*, const char*);
diff --git a/Common/DataModel/vtkAMRDataInternals.h b/Common/DataModel/vtkAMRDataInternals.h
index 1934a7798aae470d8326be82adaaefd670c6ca2d..f1bd4bb218cd282bd74ef036b6da9a9294d98071 100644
--- a/Common/DataModel/vtkAMRDataInternals.h
+++ b/Common/DataModel/vtkAMRDataInternals.h
@@ -61,7 +61,7 @@ public:
 protected:
 
   vtkAMRDataInternals();
-  ~vtkAMRDataInternals();
+  ~vtkAMRDataInternals() VTK_OVERRIDE;
 
   void GenerateIndex(bool force=false);
 
diff --git a/Common/DataModel/vtkAMRInformation.h b/Common/DataModel/vtkAMRInformation.h
index f787ac4c7cbfe7fc279eb25d407ccd91efdd4ef2..015dc09e9155c23ad52f18f8bc3741d422df7f21 100644
--- a/Common/DataModel/vtkAMRInformation.h
+++ b/Common/DataModel/vtkAMRInformation.h
@@ -210,7 +210,7 @@ public:
 
  private:
   vtkAMRInformation();
-  ~vtkAMRInformation();
+  ~vtkAMRInformation() VTK_OVERRIDE;
   vtkAMRInformation(const vtkAMRInformation&) VTK_DELETE_FUNCTION;
   void operator=(const vtkAMRInformation&) VTK_DELETE_FUNCTION;
 
diff --git a/Common/DataModel/vtkAMRUtilities.h b/Common/DataModel/vtkAMRUtilities.h
index 2963ba3122ae1e239fbfcb7984499c3b9b3e1314..74319f8af94df9b03dbe2f4546dd89c5099656c9 100644
--- a/Common/DataModel/vtkAMRUtilities.h
+++ b/Common/DataModel/vtkAMRUtilities.h
@@ -65,7 +65,7 @@ public:
 
 protected:
   vtkAMRUtilities() {}
-  ~vtkAMRUtilities() {}
+  ~vtkAMRUtilities() VTK_OVERRIDE {}
 
   // Description:
   // Given the real-extent w.r.t. the ghosted grid, this method copies the
diff --git a/Common/DataModel/vtkAbstractCellLinks.h b/Common/DataModel/vtkAbstractCellLinks.h
index e78a27bdeb75787c519d97b57ba40903ee5eaefa..67f248276423d303b8de631ff83b63b11e14272e 100644
--- a/Common/DataModel/vtkAbstractCellLinks.h
+++ b/Common/DataModel/vtkAbstractCellLinks.h
@@ -60,7 +60,7 @@ public:
 
 protected:
   vtkAbstractCellLinks();
-  virtual ~vtkAbstractCellLinks();
+  ~vtkAbstractCellLinks() VTK_OVERRIDE;
 
 private:
   vtkAbstractCellLinks(const vtkAbstractCellLinks&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkAbstractCellLocator.h b/Common/DataModel/vtkAbstractCellLocator.h
index 51634b8a864fa3d29c0612cd8e3308b3c391ad07..cfc9aefbb6e01738788f0ca4cb33e926a7f4a4c9 100644
--- a/Common/DataModel/vtkAbstractCellLocator.h
+++ b/Common/DataModel/vtkAbstractCellLocator.h
@@ -240,7 +240,7 @@ public:
 
 protected:
    vtkAbstractCellLocator();
-  ~vtkAbstractCellLocator();
+  ~vtkAbstractCellLocator() VTK_OVERRIDE;
 
   // Description:
   // This command is used internally by the locator to copy
diff --git a/Common/DataModel/vtkAbstractElectronicData.h b/Common/DataModel/vtkAbstractElectronicData.h
index feaaf1e0e599ce8f59adf941cee6c1eabc52707d..ac24f4acf082d54e8ed74c5d2bc64535d0fbc087 100644
--- a/Common/DataModel/vtkAbstractElectronicData.h
+++ b/Common/DataModel/vtkAbstractElectronicData.h
@@ -96,7 +96,7 @@ public:
 
 protected:
   vtkAbstractElectronicData();
-  ~vtkAbstractElectronicData();
+  ~vtkAbstractElectronicData() VTK_OVERRIDE;
 
   double Padding;
 
diff --git a/Common/DataModel/vtkAbstractPointLocator.h b/Common/DataModel/vtkAbstractPointLocator.h
index 3c8a3bf6a4f1ac0627fbc2d94567f3633c7c2c53..ac410d83e52cbfa8507ae8dbf66bd902cea4b0fd 100644
--- a/Common/DataModel/vtkAbstractPointLocator.h
+++ b/Common/DataModel/vtkAbstractPointLocator.h
@@ -89,7 +89,7 @@ public:
 
 protected:
   vtkAbstractPointLocator();
-  virtual ~vtkAbstractPointLocator();
+  ~vtkAbstractPointLocator() VTK_OVERRIDE;
 
   double Bounds[6]; // bounds of points
   vtkIdType NumberOfBuckets; // total size of locator
diff --git a/Common/DataModel/vtkAdjacentVertexIterator.h b/Common/DataModel/vtkAdjacentVertexIterator.h
index 376cbac4005c552746a09d847889e6779a8feae2..30564b1ef0874ac1806ea65efb1e490ff4900cfd 100644
--- a/Common/DataModel/vtkAdjacentVertexIterator.h
+++ b/Common/DataModel/vtkAdjacentVertexIterator.h
@@ -74,7 +74,7 @@ public:
 
 protected:
   vtkAdjacentVertexIterator();
-  ~vtkAdjacentVertexIterator();
+  ~vtkAdjacentVertexIterator() VTK_OVERRIDE;
 
   // Description:
   // Protected method for setting the graph used
diff --git a/Common/DataModel/vtkAnimationScene.h b/Common/DataModel/vtkAnimationScene.h
index e0521b71badabc837ef65dcfc9d5917195194d09..e718c62ee2a1e480335c755d2014856eb04158ce 100644
--- a/Common/DataModel/vtkAnimationScene.h
+++ b/Common/DataModel/vtkAnimationScene.h
@@ -103,7 +103,7 @@ public:
 
 protected:
   vtkAnimationScene();
-  ~vtkAnimationScene();
+  ~vtkAnimationScene() VTK_OVERRIDE;
 
   // Description:
   // Called on every valid tick.
diff --git a/Common/DataModel/vtkAnnotation.h b/Common/DataModel/vtkAnnotation.h
index f381f266148542d86fb10ee9839ad9d91c792057..0cf81f8ae029ed1699a2762fa81dd0a721112264 100644
--- a/Common/DataModel/vtkAnnotation.h
+++ b/Common/DataModel/vtkAnnotation.h
@@ -110,7 +110,7 @@ public:
 
 protected:
   vtkAnnotation();
-  ~vtkAnnotation();
+  ~vtkAnnotation() VTK_OVERRIDE;
 
   vtkSelection* Selection;
 
diff --git a/Common/DataModel/vtkAnnotationLayers.h b/Common/DataModel/vtkAnnotationLayers.h
index e5f7760309312aa9ec95a75ae3cec0361eefe810..5200ba814b32d72268252c3a02c096ebf73932f6 100644
--- a/Common/DataModel/vtkAnnotationLayers.h
+++ b/Common/DataModel/vtkAnnotationLayers.h
@@ -95,7 +95,7 @@ public:
 
 protected:
   vtkAnnotationLayers();
-  ~vtkAnnotationLayers();
+  ~vtkAnnotationLayers() VTK_OVERRIDE;
 
   class Internals;
   Internals* Implementation;
diff --git a/Common/DataModel/vtkArrayData.h b/Common/DataModel/vtkArrayData.h
index 3af62640a07a750f79c1e54eb4c5ad390f744ddd..f40b7e5e3d3c5a8fbb753461d4f975cfd495a363 100644
--- a/Common/DataModel/vtkArrayData.h
+++ b/Common/DataModel/vtkArrayData.h
@@ -82,7 +82,7 @@ public:
 
 protected:
   vtkArrayData();
-  ~vtkArrayData();
+  ~vtkArrayData() VTK_OVERRIDE;
 
 private:
   vtkArrayData(const vtkArrayData&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkAttributesErrorMetric.h b/Common/DataModel/vtkAttributesErrorMetric.h
index 49e022994730aea50d0d9205386341727e7413e9..06a4df91cfcac3cfbc85aba8c0876ccc577c68d1 100644
--- a/Common/DataModel/vtkAttributesErrorMetric.h
+++ b/Common/DataModel/vtkAttributesErrorMetric.h
@@ -117,7 +117,7 @@ public:
 
 protected:
   vtkAttributesErrorMetric();
-  virtual ~vtkAttributesErrorMetric();
+  ~vtkAttributesErrorMetric() VTK_OVERRIDE;
 
   // Description:
   // Compute the square absolute attribute tolerance, only if the cached value
diff --git a/Common/DataModel/vtkBSPCuts.h b/Common/DataModel/vtkBSPCuts.h
index 772ebc3cf5e65879e18b19237707c21751268261..95b4d73cedefe1b5fa5ba71856963aab05179f10 100644
--- a/Common/DataModel/vtkBSPCuts.h
+++ b/Common/DataModel/vtkBSPCuts.h
@@ -116,7 +116,7 @@ public:
 protected:
 
   vtkBSPCuts();
-  ~vtkBSPCuts();
+  ~vtkBSPCuts() VTK_OVERRIDE;
 
   static void DeleteAllDescendants(vtkKdNode *kd);
 
diff --git a/Common/DataModel/vtkBSPIntersections.h b/Common/DataModel/vtkBSPIntersections.h
index 86633df17c1bcf19b91f3d127251942ba0221a73..e90e83c14ecaaeadca316ec2cb48b04df8660ff2 100644
--- a/Common/DataModel/vtkBSPIntersections.h
+++ b/Common/DataModel/vtkBSPIntersections.h
@@ -139,7 +139,7 @@ public:
 protected:
 
   vtkBSPIntersections();
-  ~vtkBSPIntersections();
+  ~vtkBSPIntersections() VTK_OVERRIDE;
 
   vtkGetMacro(RegionListBuildTime, vtkMTimeType);
 
diff --git a/Common/DataModel/vtkBiQuadraticQuad.h b/Common/DataModel/vtkBiQuadraticQuad.h
index 7c307e2c389697634afd0232624df53767377dac..49d58f7f1c12083ba224fda320a590555452115b 100644
--- a/Common/DataModel/vtkBiQuadraticQuad.h
+++ b/Common/DataModel/vtkBiQuadraticQuad.h
@@ -119,7 +119,7 @@ public:
 
 protected:
   vtkBiQuadraticQuad();
-  ~vtkBiQuadraticQuad();
+  ~vtkBiQuadraticQuad() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuad          *Quad;
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
index c7f20c25983fb5b32d8bc3c975ed2c1f31743e5c..08f82ae9a08889aeea81ef9dde83428f18d8fd54 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
+++ b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
@@ -155,7 +155,7 @@ public:
 
 protected:
   vtkBiQuadraticQuadraticHexahedron();
-  ~vtkBiQuadraticQuadraticHexahedron();
+  ~vtkBiQuadraticQuadraticHexahedron() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticQuad *Face;
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticWedge.h b/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
index 6db7648f71ee5fbe171cb47ddcb6d349c7aa2923..96b8829b050f5eb763fdc44844637578e51e3785 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
+++ b/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
@@ -133,7 +133,7 @@ public:
 
 protected:
   vtkBiQuadraticQuadraticWedge ();
-  ~vtkBiQuadraticQuadraticWedge ();
+  ~vtkBiQuadraticQuadraticWedge () VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticTriangle *TriangleFace;
diff --git a/Common/DataModel/vtkBiQuadraticTriangle.h b/Common/DataModel/vtkBiQuadraticTriangle.h
index 8213cd03c2a6770a75833b8cb92f1ccc0709efb8..bd0aef9f1b15d96a37cab03ff54497bc7dc0db85 100644
--- a/Common/DataModel/vtkBiQuadraticTriangle.h
+++ b/Common/DataModel/vtkBiQuadraticTriangle.h
@@ -121,7 +121,7 @@ public:
 
 protected:
   vtkBiQuadraticTriangle();
-  ~vtkBiQuadraticTriangle();
+  ~vtkBiQuadraticTriangle() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkTriangle      *Face;
diff --git a/Common/DataModel/vtkBox.h b/Common/DataModel/vtkBox.h
index e5a16abfecbd7983a04ce1b1f6d2f3be151e4c6b..626886127877401613fa236e905d41291012be09 100644
--- a/Common/DataModel/vtkBox.h
+++ b/Common/DataModel/vtkBox.h
@@ -110,7 +110,7 @@ public:
 
 protected:
   vtkBox();
-  ~vtkBox();
+  ~vtkBox() VTK_OVERRIDE;
 
   vtkBoundingBox *BBox;
   double Bounds[6]; //supports the GetBounds() method
diff --git a/Common/DataModel/vtkCell.h b/Common/DataModel/vtkCell.h
index 7d7c2572dc029f3589693a1b3d61c93cefe0fd6a..320733733d86ad75899911be46b059c28e545a46 100644
--- a/Common/DataModel/vtkCell.h
+++ b/Common/DataModel/vtkCell.h
@@ -318,7 +318,7 @@ public:
 
 protected:
   vtkCell();
-  ~vtkCell();
+  ~vtkCell() VTK_OVERRIDE;
 
   double Bounds[6];
 
diff --git a/Common/DataModel/vtkCell3D.h b/Common/DataModel/vtkCell3D.h
index cbbddce1d6bb6b66e9904bfb023f367d3dd758d7..ddb789df71ea1306690bfbb20602a842f20052d2 100644
--- a/Common/DataModel/vtkCell3D.h
+++ b/Common/DataModel/vtkCell3D.h
@@ -91,7 +91,7 @@ public:
 
 protected:
   vtkCell3D();
-  ~vtkCell3D();
+  ~vtkCell3D() VTK_OVERRIDE;
 
   vtkOrderedTriangulator *Triangulator;
   double                  MergeTolerance;
diff --git a/Common/DataModel/vtkCellArray.h b/Common/DataModel/vtkCellArray.h
index bdff29304a083657b2af4d3e18fa195bc47e93fe..aeb31cea678540bd8c293ebd1fa4b198446462cd 100644
--- a/Common/DataModel/vtkCellArray.h
+++ b/Common/DataModel/vtkCellArray.h
@@ -233,7 +233,7 @@ public:
 
 protected:
   vtkCellArray();
-  ~vtkCellArray();
+  ~vtkCellArray() VTK_OVERRIDE;
 
   vtkIdType NumberOfCells;
   vtkIdType InsertLocation;     //keep track of current insertion point
diff --git a/Common/DataModel/vtkCellData.h b/Common/DataModel/vtkCellData.h
index e96d3f99daad23be350a3b380880be8da1be44c7..37174f14101796c1d5c8fd437517410456a9a944 100644
--- a/Common/DataModel/vtkCellData.h
+++ b/Common/DataModel/vtkCellData.h
@@ -36,7 +36,7 @@ public:
 
 protected:
   vtkCellData() {} //make sure constructor and desctructor are protected
-  ~vtkCellData() {}
+  ~vtkCellData() VTK_OVERRIDE {}
 
 private:
   vtkCellData(const vtkCellData&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkCellIterator.h b/Common/DataModel/vtkCellIterator.h
index 0150ead35e7a3d9046f195e339a3f97c9e2fe32d..af53f5c771a404dcb0d8d908e6009f22f234d5df 100644
--- a/Common/DataModel/vtkCellIterator.h
+++ b/Common/DataModel/vtkCellIterator.h
@@ -137,7 +137,7 @@ public:
 
 protected:
   vtkCellIterator();
-  ~vtkCellIterator();
+  ~vtkCellIterator() VTK_OVERRIDE;
 
   // Description:
   // Update internal state to point to the first cell.
diff --git a/Common/DataModel/vtkCellLinks.h b/Common/DataModel/vtkCellLinks.h
index 3e21a599613445a5fcfc51b117a055eec5d66c1c..db6cc3e068eadcf0e75d9e0cfe92a7e246452f33 100644
--- a/Common/DataModel/vtkCellLinks.h
+++ b/Common/DataModel/vtkCellLinks.h
@@ -140,7 +140,7 @@ public:
 
 protected:
   vtkCellLinks():Array(NULL),Size(0),MaxId(-1),Extend(1000) {}
-  virtual ~vtkCellLinks();
+  ~vtkCellLinks() VTK_OVERRIDE;
 
   // Description:
   // Increment the count of the number of cells using the point.
diff --git a/Common/DataModel/vtkCellLocator.h b/Common/DataModel/vtkCellLocator.h
index 4023d7b927d602103e0f700b719641f62748b33d..84484c7b71251ffbb3f095b0e8d6867da8f3386a 100644
--- a/Common/DataModel/vtkCellLocator.h
+++ b/Common/DataModel/vtkCellLocator.h
@@ -152,7 +152,7 @@ public:
 
 protected:
   vtkCellLocator();
-  ~vtkCellLocator();
+  ~vtkCellLocator() VTK_OVERRIDE;
 
   void GetBucketNeighbors(int ijk[3], int ndivs, int level);
   void GetOverlappingBuckets(double x[3], int ijk[3], double dist,
diff --git a/Common/DataModel/vtkCellTypes.h b/Common/DataModel/vtkCellTypes.h
index 595c3c7ba005f0b9b6603e4a7039d8b3c1977c8c..31acc78076dc0b8ecad4e1ae0b79b7b1337da1a8 100644
--- a/Common/DataModel/vtkCellTypes.h
+++ b/Common/DataModel/vtkCellTypes.h
@@ -128,7 +128,7 @@ public:
 
 protected:
   vtkCellTypes();
-  ~vtkCellTypes();
+  ~vtkCellTypes() VTK_OVERRIDE;
 
   vtkUnsignedCharArray *TypeArray; // pointer to types array
   vtkIntArray *LocationArray;   // pointer to array of offsets
diff --git a/Common/DataModel/vtkCompositeDataIterator.h b/Common/DataModel/vtkCompositeDataIterator.h
index 55e9cb5e4c179770914257a4a7c96edd815d64a5..44890dedebbb77bc1bfa6c8e1acfbfafe4ec5aaf 100644
--- a/Common/DataModel/vtkCompositeDataIterator.h
+++ b/Common/DataModel/vtkCompositeDataIterator.h
@@ -95,7 +95,7 @@ public:
 
 protected:
   vtkCompositeDataIterator();
-  virtual ~vtkCompositeDataIterator();
+  ~vtkCompositeDataIterator() VTK_OVERRIDE;
   int SkipEmptyNodes;
   int Reverse;
   vtkCompositeDataSet* DataSet;
diff --git a/Common/DataModel/vtkCompositeDataSet.h b/Common/DataModel/vtkCompositeDataSet.h
index 637f05f5fa1ab91248e34f0c4dad68e2891abc61..7579c896dfe3ef82fea83a211998f6bfb583982b 100644
--- a/Common/DataModel/vtkCompositeDataSet.h
+++ b/Common/DataModel/vtkCompositeDataSet.h
@@ -114,7 +114,7 @@ public:
 
  protected:
   vtkCompositeDataSet();
-  virtual ~vtkCompositeDataSet();
+  ~vtkCompositeDataSet() VTK_OVERRIDE;
  private:
 
   vtkCompositeDataSet(const vtkCompositeDataSet&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkCone.h b/Common/DataModel/vtkCone.h
index 121e234957d9b9402fb86ec965a46282e29148dc..7b5a90a7868bae5a99dbfbf928293a75311b1601 100644
--- a/Common/DataModel/vtkCone.h
+++ b/Common/DataModel/vtkCone.h
@@ -58,7 +58,7 @@ public:
 
 protected:
   vtkCone();
-  ~vtkCone() {}
+  ~vtkCone() VTK_OVERRIDE {}
 
   double Angle;
 
diff --git a/Common/DataModel/vtkConvexPointSet.h b/Common/DataModel/vtkConvexPointSet.h
index 67a903a439fbecc14787ace7bacd920bde6abd95..05607092e580cb8a2b732c6e3c04f5124ce7e427 100644
--- a/Common/DataModel/vtkConvexPointSet.h
+++ b/Common/DataModel/vtkConvexPointSet.h
@@ -147,7 +147,7 @@ public:
 
 protected:
   vtkConvexPointSet();
-  ~vtkConvexPointSet();
+  ~vtkConvexPointSet() VTK_OVERRIDE;
 
   vtkTetra       *Tetra;
   vtkIdList      *TetraIds;
diff --git a/Common/DataModel/vtkCubicLine.h b/Common/DataModel/vtkCubicLine.h
index b3c177a4a7798f07aa52d7a1fcc6ff781da05136..d2c8eaf72942ff7f850a3ff343dee3b84aa1cbff 100644
--- a/Common/DataModel/vtkCubicLine.h
+++ b/Common/DataModel/vtkCubicLine.h
@@ -114,7 +114,7 @@ public:
 
 protected:
   vtkCubicLine();
-  ~vtkCubicLine();
+  ~vtkCubicLine() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkDoubleArray *Scalars; //used to avoid New/Delete in contouring/clipping
diff --git a/Common/DataModel/vtkCylinder.h b/Common/DataModel/vtkCylinder.h
index 585902ff29400b0b9c24bff448ec04169c807797..13e639cda9d57289e0977e624b5991742fd2e1fa 100644
--- a/Common/DataModel/vtkCylinder.h
+++ b/Common/DataModel/vtkCylinder.h
@@ -77,7 +77,7 @@ public:
 
 protected:
   vtkCylinder();
-  ~vtkCylinder() {}
+  ~vtkCylinder() VTK_OVERRIDE {}
 
   double Radius;
   double Center[3];
diff --git a/Common/DataModel/vtkDataObject.h b/Common/DataModel/vtkDataObject.h
index dfb1d2585f0bdeb112b2a8eb10761bc53e77848b..f15dfbf084d706e4c94254a40e83c19781ea7554 100644
--- a/Common/DataModel/vtkDataObject.h
+++ b/Common/DataModel/vtkDataObject.h
@@ -357,7 +357,7 @@ public:
 protected:
 
   vtkDataObject();
-  ~vtkDataObject();
+  ~vtkDataObject() VTK_OVERRIDE;
 
   // General field data associated with data object
   vtkFieldData  *FieldData;
diff --git a/Common/DataModel/vtkDataObjectCollection.h b/Common/DataModel/vtkDataObjectCollection.h
index 6295244d0b76923e8654ed3c77ac7b606ff45e24..a7f8662ea1c107241fc344d8ba28ef7006b2617a 100644
--- a/Common/DataModel/vtkDataObjectCollection.h
+++ b/Common/DataModel/vtkDataObjectCollection.h
@@ -62,7 +62,7 @@ public:
 
 protected:
   vtkDataObjectCollection() {}
-  ~vtkDataObjectCollection() {}
+  ~vtkDataObjectCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/DataModel/vtkDataObjectTree.h b/Common/DataModel/vtkDataObjectTree.h
index 016b6a16896faf2db016105d68f9d4755bbb1fc5..76bd7121d6d9f990ee76ec70acfb67669e72b699 100644
--- a/Common/DataModel/vtkDataObjectTree.h
+++ b/Common/DataModel/vtkDataObjectTree.h
@@ -126,7 +126,7 @@ public:
 
 protected:
   vtkDataObjectTree();
-  ~vtkDataObjectTree();
+  ~vtkDataObjectTree() VTK_OVERRIDE;
 
   // Description:
   // Set the number of children.
diff --git a/Common/DataModel/vtkDataObjectTreeIterator.h b/Common/DataModel/vtkDataObjectTreeIterator.h
index c3bb86dce5daaa8875587542f561843931602b59..1ac8e3237c5d9adeb339856dbc3f74c0def8f260 100644
--- a/Common/DataModel/vtkDataObjectTreeIterator.h
+++ b/Common/DataModel/vtkDataObjectTreeIterator.h
@@ -96,7 +96,7 @@ public:
 
 protected:
   vtkDataObjectTreeIterator();
-  virtual ~vtkDataObjectTreeIterator();
+  ~vtkDataObjectTreeIterator() VTK_OVERRIDE;
 
   // Takes the current location to the next dataset. This traverses the tree in
   // preorder fashion.
diff --git a/Common/DataModel/vtkDataObjectTypes.h b/Common/DataModel/vtkDataObjectTypes.h
index 43d8f88c65166aebb5e48500dc49c4b8e2e426a5..db1b18ee0bafcff6c8138ce294e33f47aa43e1be 100644
--- a/Common/DataModel/vtkDataObjectTypes.h
+++ b/Common/DataModel/vtkDataObjectTypes.h
@@ -57,7 +57,7 @@ public:
 
 protected:
   vtkDataObjectTypes() {}
-  ~vtkDataObjectTypes() {}
+  ~vtkDataObjectTypes() VTK_OVERRIDE {}
 
   // Description:
   // Method used to validate data object types, for testing purposes
diff --git a/Common/DataModel/vtkDataSet.h b/Common/DataModel/vtkDataSet.h
index 6b86a31080249d5d917133264e5b41075da618c9..a5a699b1dbae7bf63ef6d7c811c4353332f5b571 100644
--- a/Common/DataModel/vtkDataSet.h
+++ b/Common/DataModel/vtkDataSet.h
@@ -406,7 +406,7 @@ public:
 protected:
   // Constructor with default bounds (0,1, 0,1, 0,1).
   vtkDataSet();
-  ~vtkDataSet();
+  ~vtkDataSet() VTK_OVERRIDE;
 
   // Description:
   // Compute the range of the scalars and cache it into ScalarRange
diff --git a/Common/DataModel/vtkDataSetAttributes.h b/Common/DataModel/vtkDataSetAttributes.h
index fae14dd54399023876f11a71e5dc24c35ae61778..0a065260546e0eb75a6fe72f25bd78291efeb752 100644
--- a/Common/DataModel/vtkDataSetAttributes.h
+++ b/Common/DataModel/vtkDataSetAttributes.h
@@ -508,7 +508,7 @@ public:
 
 protected:
   vtkDataSetAttributes();
-  ~vtkDataSetAttributes();
+  ~vtkDataSetAttributes() VTK_OVERRIDE;
 
   void InternalCopyAllocate(vtkDataSetAttributes* pd,
                             int ctype,
diff --git a/Common/DataModel/vtkDataSetCellIterator.h b/Common/DataModel/vtkDataSetCellIterator.h
index 02b1d17619a52bb1b47ab3e3b0ec155497f7ffbf..14af9609f835041345f5474889e646446e16c4c8 100644
--- a/Common/DataModel/vtkDataSetCellIterator.h
+++ b/Common/DataModel/vtkDataSetCellIterator.h
@@ -36,7 +36,7 @@ public:
 
 protected:
   vtkDataSetCellIterator();
-  ~vtkDataSetCellIterator();
+  ~vtkDataSetCellIterator() VTK_OVERRIDE;
 
   void ResetToFirstCell() VTK_OVERRIDE;
   void IncrementToNextCell() VTK_OVERRIDE;
diff --git a/Common/DataModel/vtkDataSetCollection.h b/Common/DataModel/vtkDataSetCollection.h
index e04942647b09954584061d2e73602ea4b0d0adde..280fab743e0dcd1a7f8a51309840b346555384a0 100644
--- a/Common/DataModel/vtkDataSetCollection.h
+++ b/Common/DataModel/vtkDataSetCollection.h
@@ -60,7 +60,7 @@ public:
 
 protected:
   vtkDataSetCollection() {}
-  ~vtkDataSetCollection() {}
+  ~vtkDataSetCollection() VTK_OVERRIDE {}
 
 private:
   // hide the standard AddItem from the user and the compiler.
diff --git a/Common/DataModel/vtkDirectedAcyclicGraph.h b/Common/DataModel/vtkDirectedAcyclicGraph.h
index 681fc9af32735c2307ac150bbabd07d1d7d5b1ae..b24c79a1cb44634ef573092f3b763a171210bedb 100644
--- a/Common/DataModel/vtkDirectedAcyclicGraph.h
+++ b/Common/DataModel/vtkDirectedAcyclicGraph.h
@@ -66,7 +66,7 @@ public:
 
 protected:
   vtkDirectedAcyclicGraph();
-  ~vtkDirectedAcyclicGraph();
+  ~vtkDirectedAcyclicGraph() VTK_OVERRIDE;
 
   // Description:
   // Check the storage, and accept it if it is a valid
diff --git a/Common/DataModel/vtkDirectedGraph.h b/Common/DataModel/vtkDirectedGraph.h
index 99fe70f75dafeb315d14b1521a12ca3dbfe8fb12..4c29c207a053361502f405ac15a7e656aaa8b25a 100644
--- a/Common/DataModel/vtkDirectedGraph.h
+++ b/Common/DataModel/vtkDirectedGraph.h
@@ -62,7 +62,7 @@ public:
 
 protected:
   vtkDirectedGraph();
-  ~vtkDirectedGraph();
+  ~vtkDirectedGraph() VTK_OVERRIDE;
 
 private:
   vtkDirectedGraph(const vtkDirectedGraph&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkDistributedGraphHelper.h b/Common/DataModel/vtkDistributedGraphHelper.h
index 21358729b2a81a15d347d685ab0bd803e431ca67..7af2b50bee5ac89600f797318b96f60986ea2f81 100644
--- a/Common/DataModel/vtkDistributedGraphHelper.h
+++ b/Common/DataModel/vtkDistributedGraphHelper.h
@@ -136,7 +136,7 @@ class VTKCOMMONDATAMODEL_EXPORT vtkDistributedGraphHelper : public vtkObject
 
  protected:
   vtkDistributedGraphHelper();
-  virtual ~vtkDistributedGraphHelper();
+  ~vtkDistributedGraphHelper() VTK_OVERRIDE;
 
   // Description:
   // Add a vertex, optionally with properties, to the distributed graph.
diff --git a/Common/DataModel/vtkEdgeListIterator.h b/Common/DataModel/vtkEdgeListIterator.h
index cbc226c11bd4dc0fd0404ca27930608bd32ab90e..36af068a0678e8b7d31abd1ac045a4a4ee90c3ba 100644
--- a/Common/DataModel/vtkEdgeListIterator.h
+++ b/Common/DataModel/vtkEdgeListIterator.h
@@ -72,7 +72,7 @@ public:
 
 protected:
   vtkEdgeListIterator();
-  ~vtkEdgeListIterator();
+  ~vtkEdgeListIterator() VTK_OVERRIDE;
 
   void Increment();
 
diff --git a/Common/DataModel/vtkEdgeTable.h b/Common/DataModel/vtkEdgeTable.h
index e788d89c6660e36bb168ca6094fd5873c81b6a10..b28f4a090cee33b37399c4ed4d4a0a78dfefa1a3 100644
--- a/Common/DataModel/vtkEdgeTable.h
+++ b/Common/DataModel/vtkEdgeTable.h
@@ -146,7 +146,7 @@ public:
 
 protected:
   vtkEdgeTable();
-  ~vtkEdgeTable();
+  ~vtkEdgeTable() VTK_OVERRIDE;
 
   vtkIdList **Table;
   vtkIdType TableMaxId; //maximum point id inserted
diff --git a/Common/DataModel/vtkEmptyCell.h b/Common/DataModel/vtkEmptyCell.h
index 4941b66673bee3c1dcacf89dd2d3c21f7c864a62..62a76256222481a7e09a56144420533761b4fb45 100644
--- a/Common/DataModel/vtkEmptyCell.h
+++ b/Common/DataModel/vtkEmptyCell.h
@@ -63,7 +63,7 @@ public:
 
 protected:
   vtkEmptyCell() {}
-  ~vtkEmptyCell() {}
+  ~vtkEmptyCell() VTK_OVERRIDE {}
 
 private:
   vtkEmptyCell(const vtkEmptyCell&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkExtractStructuredGridHelper.h b/Common/DataModel/vtkExtractStructuredGridHelper.h
index dd29065995454d9ac18f00c15cb9e055ff3662d3..ed64163b87ab63530ae00138ebced058ffc70bd9 100644
--- a/Common/DataModel/vtkExtractStructuredGridHelper.h
+++ b/Common/DataModel/vtkExtractStructuredGridHelper.h
@@ -201,7 +201,7 @@ public:
 
 protected:
   vtkExtractStructuredGridHelper();
-  ~vtkExtractStructuredGridHelper();
+  ~vtkExtractStructuredGridHelper() VTK_OVERRIDE;
 
   // Input parameters -- used to reinitialize when data changes.
   int VOI[6];
diff --git a/Common/DataModel/vtkFieldData.h b/Common/DataModel/vtkFieldData.h
index bc11a0fbdf2bb8b04497cbedb4c9f641bcfef097..fa33b00b944f526e6e14e457a051d368aa8e30af 100644
--- a/Common/DataModel/vtkFieldData.h
+++ b/Common/DataModel/vtkFieldData.h
@@ -297,7 +297,7 @@ public:
 protected:
 
   vtkFieldData();
-  ~vtkFieldData();
+  ~vtkFieldData() VTK_OVERRIDE;
 
   int NumberOfArrays;
   int NumberOfActiveArrays;
@@ -380,7 +380,7 @@ public:
 
     Iterator(const Iterator& source);
     Iterator& operator=(const Iterator& source);
-    virtual ~Iterator();
+    ~Iterator() VTK_OVERRIDE;
     Iterator(vtkFieldData* dsa, const int* list=0,
              unsigned int listSize=0);
 
diff --git a/Common/DataModel/vtkGenericAdaptorCell.h b/Common/DataModel/vtkGenericAdaptorCell.h
index 54de64e4bc0703bdfeefbc04704bd547a2bed716..880271eedf69b364cc2c4d310550932d970e5750 100644
--- a/Common/DataModel/vtkGenericAdaptorCell.h
+++ b/Common/DataModel/vtkGenericAdaptorCell.h
@@ -556,7 +556,7 @@ public:
 
 protected:
   vtkGenericAdaptorCell();
-  virtual ~vtkGenericAdaptorCell();
+  ~vtkGenericAdaptorCell() VTK_OVERRIDE;
 
   // Description:
   // Reset internal structures.
diff --git a/Common/DataModel/vtkGenericAttribute.h b/Common/DataModel/vtkGenericAttribute.h
index 7d75787d97f344ea5d8d5f069c3ad6c569555f44..089cda41f63a19bd00ba0afc970a115da6602b0e 100644
--- a/Common/DataModel/vtkGenericAttribute.h
+++ b/Common/DataModel/vtkGenericAttribute.h
@@ -193,7 +193,7 @@ class VTKCOMMONDATAMODEL_EXPORT vtkGenericAttribute : public vtkObject
 
 protected:
   vtkGenericAttribute();
-  ~vtkGenericAttribute();
+  ~vtkGenericAttribute() VTK_OVERRIDE;
 
 private:
   vtkGenericAttribute(const vtkGenericAttribute&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkGenericAttributeCollection.h b/Common/DataModel/vtkGenericAttributeCollection.h
index d3a5fe7d10cacab3c3a02432ecf658f444dd5971..5d2369732658c54a63843632816fd4e34905a5db 100644
--- a/Common/DataModel/vtkGenericAttributeCollection.h
+++ b/Common/DataModel/vtkGenericAttributeCollection.h
@@ -206,7 +206,7 @@ protected:
 
   // Description:
   // Destructor.
-  virtual ~vtkGenericAttributeCollection();
+  ~vtkGenericAttributeCollection() VTK_OVERRIDE;
 
   // Description:
   // STL vector for storing attributes
diff --git a/Common/DataModel/vtkGenericCell.h b/Common/DataModel/vtkGenericCell.h
index e256e4eb74aaa0545acbddf49fe293316271e168..b7cdfe20cce94e6f58fb8640ce3f83f3a01dace0 100644
--- a/Common/DataModel/vtkGenericCell.h
+++ b/Common/DataModel/vtkGenericCell.h
@@ -153,7 +153,7 @@ public:
 
 protected:
   vtkGenericCell();
-  ~vtkGenericCell();
+  ~vtkGenericCell() VTK_OVERRIDE;
 
   vtkCell *Cell;
 
diff --git a/Common/DataModel/vtkGenericCellIterator.h b/Common/DataModel/vtkGenericCellIterator.h
index 7048a7ef73f7c3cb84e9422b8d32c04cd6d2206b..9291ee371e2457fae07b092d7b1f11699dc21a0c 100644
--- a/Common/DataModel/vtkGenericCellIterator.h
+++ b/Common/DataModel/vtkGenericCellIterator.h
@@ -78,7 +78,7 @@ public:
 
 protected:
   vtkGenericCellIterator();
-  virtual ~vtkGenericCellIterator();
+  ~vtkGenericCellIterator() VTK_OVERRIDE;
 
 private:
   vtkGenericCellIterator(const vtkGenericCellIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkGenericCellTessellator.h b/Common/DataModel/vtkGenericCellTessellator.h
index c59ddd9fcae5f4e06b513acde07800773d3d8c6b..49ed9a611c8450c3d7679bd4662f8bc9a4b8ced7 100644
--- a/Common/DataModel/vtkGenericCellTessellator.h
+++ b/Common/DataModel/vtkGenericCellTessellator.h
@@ -136,7 +136,7 @@ public:
 
 protected:
   vtkGenericCellTessellator();
-  ~vtkGenericCellTessellator();
+  ~vtkGenericCellTessellator() VTK_OVERRIDE;
 
   // Description:
   // Does the edge need to be subdivided according to at least one error
diff --git a/Common/DataModel/vtkGenericDataSet.h b/Common/DataModel/vtkGenericDataSet.h
index 5c2f21ba4d2a3d397ddd50a9b0731bb3a2ed4aef..f032c0e47947ad7fefc40119240cf98c57422e5c 100644
--- a/Common/DataModel/vtkGenericDataSet.h
+++ b/Common/DataModel/vtkGenericDataSet.h
@@ -246,7 +246,7 @@ protected:
   // empty attribute collection and default tessellator.
   vtkGenericDataSet();
 
-  virtual ~vtkGenericDataSet();
+  ~vtkGenericDataSet() VTK_OVERRIDE;
 
   vtkGenericAttributeCollection *Attributes;
 
diff --git a/Common/DataModel/vtkGenericEdgeTable.h b/Common/DataModel/vtkGenericEdgeTable.h
index 613906c3c639ec1c96aa9c90451b6f7fbc5bfda6..b694d0473217d2183d97b0516393d4d25d8e6ad7 100644
--- a/Common/DataModel/vtkGenericEdgeTable.h
+++ b/Common/DataModel/vtkGenericEdgeTable.h
@@ -222,7 +222,7 @@ public:
 
 protected:
   vtkGenericEdgeTable();
-  ~vtkGenericEdgeTable();
+  ~vtkGenericEdgeTable() VTK_OVERRIDE;
 
   // Description:
   // Split the edge with the indicated point id.
diff --git a/Common/DataModel/vtkGenericInterpolatedVelocityField.h b/Common/DataModel/vtkGenericInterpolatedVelocityField.h
index dc52169fe93712dd761a192eac12f964295c95c4..ef866e9f2a6eb26c2a8993994d8a33b04440ee37 100644
--- a/Common/DataModel/vtkGenericInterpolatedVelocityField.h
+++ b/Common/DataModel/vtkGenericInterpolatedVelocityField.h
@@ -121,7 +121,7 @@ public:
 
 protected:
   vtkGenericInterpolatedVelocityField();
-  ~vtkGenericInterpolatedVelocityField();
+  ~vtkGenericInterpolatedVelocityField() VTK_OVERRIDE;
 
   vtkGenericCellIterator *GenCell; // last cell
 
diff --git a/Common/DataModel/vtkGenericPointIterator.h b/Common/DataModel/vtkGenericPointIterator.h
index af22995e98121adbfafc6751ea0d7fb70e658861..31b9964fca8d23ebf7d3e5898946dacf5a8d24c9 100644
--- a/Common/DataModel/vtkGenericPointIterator.h
+++ b/Common/DataModel/vtkGenericPointIterator.h
@@ -76,7 +76,7 @@ protected:
   // Description:
   // Destructor.
   vtkGenericPointIterator();
-  virtual ~vtkGenericPointIterator();
+  ~vtkGenericPointIterator() VTK_OVERRIDE;
 
 private:
   vtkGenericPointIterator(const vtkGenericPointIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkGenericSubdivisionErrorMetric.h b/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
index 202b85402ca7b6a4fb6b4eb3a2fac7f24c2e0dd5..c81f0e2a0f8a2f59a840d81a4e21996fc103bc22 100644
--- a/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
+++ b/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
@@ -97,7 +97,7 @@ public:
 
 protected:
   vtkGenericSubdivisionErrorMetric();
-  ~vtkGenericSubdivisionErrorMetric();
+  ~vtkGenericSubdivisionErrorMetric() VTK_OVERRIDE;
 
   vtkGenericAdaptorCell *GenericCell;
   vtkGenericDataSet *DataSet;
diff --git a/Common/DataModel/vtkGeometricErrorMetric.h b/Common/DataModel/vtkGeometricErrorMetric.h
index 49e9a13c41fc2b816f04ee4e1127e0993d06f9f0..1263ff5e61193ead741f74901435434252d55242 100644
--- a/Common/DataModel/vtkGeometricErrorMetric.h
+++ b/Common/DataModel/vtkGeometricErrorMetric.h
@@ -108,7 +108,7 @@ public:
 
 protected:
   vtkGeometricErrorMetric();
-  virtual ~vtkGeometricErrorMetric();
+  ~vtkGeometricErrorMetric() VTK_OVERRIDE;
 
   // Description:
   // Square distance between a straight line (defined by points x and y)
diff --git a/Common/DataModel/vtkGraph.h b/Common/DataModel/vtkGraph.h
index 4c46b15fe48abc65eefb218c63362c58e44ba321..94f3aee021d82d6bed637da334510f6247ba25f2 100644
--- a/Common/DataModel/vtkGraph.h
+++ b/Common/DataModel/vtkGraph.h
@@ -571,7 +571,7 @@ public:
 protected:
 
   vtkGraph();
-  ~vtkGraph();
+  ~vtkGraph() VTK_OVERRIDE;
 
   // Description:
   // Protected method for adding vertices, optionally with properties,
diff --git a/Common/DataModel/vtkGraphEdge.h b/Common/DataModel/vtkGraphEdge.h
index 1a369870d402eb85043f7cffec859c2da6f96ab5..cc12fd4d714a6a9e37f4f074a377f4f455d3cfdb 100644
--- a/Common/DataModel/vtkGraphEdge.h
+++ b/Common/DataModel/vtkGraphEdge.h
@@ -57,7 +57,7 @@ public:
 
 protected:
   vtkGraphEdge();
-  ~vtkGraphEdge();
+  ~vtkGraphEdge() VTK_OVERRIDE;
 
   vtkIdType Source;
   vtkIdType Target;
diff --git a/Common/DataModel/vtkGraphInternals.h b/Common/DataModel/vtkGraphInternals.h
index 844f5c5698a89a5c7d17b15a9fc8012b84a72d01..c925ab1b9a662dd705671a6bcd45347fce8a2fd2 100644
--- a/Common/DataModel/vtkGraphInternals.h
+++ b/Common/DataModel/vtkGraphInternals.h
@@ -84,7 +84,7 @@ public:
 
 protected:
   vtkGraphInternals();
-  ~vtkGraphInternals();
+  ~vtkGraphInternals() VTK_OVERRIDE;
 
 private:
   vtkGraphInternals(const vtkGraphInternals&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkHexagonalPrism.h b/Common/DataModel/vtkHexagonalPrism.h
index 8ab2033c9af0eb4f2d31a1f5e42f845f39ce0000..5422a4922a82851809d076e718c424356227d609 100644
--- a/Common/DataModel/vtkHexagonalPrism.h
+++ b/Common/DataModel/vtkHexagonalPrism.h
@@ -110,7 +110,7 @@ public:
 
 protected:
   vtkHexagonalPrism();
-  ~vtkHexagonalPrism();
+  ~vtkHexagonalPrism() VTK_OVERRIDE;
 
   vtkLine          *Line;
   vtkQuad          *Quad;
diff --git a/Common/DataModel/vtkHexahedron.h b/Common/DataModel/vtkHexahedron.h
index 3f15cc3600c6fd7135f864899d56a6c7410ffd11..6486a86f4ecf7cba5840306d8e8c469ee47c96a3 100644
--- a/Common/DataModel/vtkHexahedron.h
+++ b/Common/DataModel/vtkHexahedron.h
@@ -105,7 +105,7 @@ public:
 
 protected:
   vtkHexahedron();
-  ~vtkHexahedron();
+  ~vtkHexahedron() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkQuad *Quad;
diff --git a/Common/DataModel/vtkHierarchicalBoxDataIterator.h b/Common/DataModel/vtkHierarchicalBoxDataIterator.h
index 57a6ba7b61e49911c947d59769e2c900b9a2e98e..c7b466587232ac90901438c870ddbde219fb360f 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataIterator.h
+++ b/Common/DataModel/vtkHierarchicalBoxDataIterator.h
@@ -32,7 +32,7 @@ class VTKCOMMONDATAMODEL_EXPORT vtkHierarchicalBoxDataIterator :
 
   protected:
     vtkHierarchicalBoxDataIterator();
-    virtual ~vtkHierarchicalBoxDataIterator();
+    ~vtkHierarchicalBoxDataIterator() VTK_OVERRIDE;
 
   private:
     vtkHierarchicalBoxDataIterator(const vtkHierarchicalBoxDataIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkHierarchicalBoxDataSet.h b/Common/DataModel/vtkHierarchicalBoxDataSet.h
index 423afb303937b1781d03c51daceab4c676978493..72c992c6b35efa6e306b1ff5f9cee020c91ba526 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataSet.h
+++ b/Common/DataModel/vtkHierarchicalBoxDataSet.h
@@ -51,7 +51,7 @@ public:
 
 protected:
   vtkHierarchicalBoxDataSet();
-  virtual ~vtkHierarchicalBoxDataSet();
+  ~vtkHierarchicalBoxDataSet() VTK_OVERRIDE;
 
 private:
   vtkHierarchicalBoxDataSet(const vtkHierarchicalBoxDataSet&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkHyperOctree.h b/Common/DataModel/vtkHyperOctree.h
index fa4c602c36f01844fb4db71b0626dbae9c2c1624..ac35bf9a7264af9ca9b5d7cd640acb0685369869 100644
--- a/Common/DataModel/vtkHyperOctree.h
+++ b/Common/DataModel/vtkHyperOctree.h
@@ -486,7 +486,7 @@ public:
 protected:
   // Constructor with default bounds (0,1, 0,1, 0,1).
   vtkHyperOctree();
-  ~vtkHyperOctree();
+  ~vtkHyperOctree() VTK_OVERRIDE;
 
   void ComputeBounds() VTK_OVERRIDE;
 
diff --git a/Common/DataModel/vtkHyperOctreeCursor.h b/Common/DataModel/vtkHyperOctreeCursor.h
index 09da655d3c934fc21ac496b9fdae903a32b260b7..76b6a454ea0a94e37d39f5ff678ef0ac64a7775f 100644
--- a/Common/DataModel/vtkHyperOctreeCursor.h
+++ b/Common/DataModel/vtkHyperOctreeCursor.h
@@ -157,7 +157,7 @@ public:
 protected:
   // Constructor.
   vtkHyperOctreeCursor();
-  virtual ~vtkHyperOctreeCursor();
+  ~vtkHyperOctreeCursor() VTK_OVERRIDE;
 private:
   vtkHyperOctreeCursor(const vtkHyperOctreeCursor&) VTK_DELETE_FUNCTION;
   void operator=(const vtkHyperOctreeCursor&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkHyperOctreePointsGrabber.h b/Common/DataModel/vtkHyperOctreePointsGrabber.h
index 300138fd4c7680d4c8824ea04e12e941a15dfb3e..b7cfa8c71abba798e66c3203b19df1b85ae9e101 100644
--- a/Common/DataModel/vtkHyperOctreePointsGrabber.h
+++ b/Common/DataModel/vtkHyperOctreePointsGrabber.h
@@ -80,7 +80,7 @@ public:
 protected:
   // Constructor with default bounds (0,1, 0,1, 0,1).
   vtkHyperOctreePointsGrabber();
-  virtual ~vtkHyperOctreePointsGrabber();
+  ~vtkHyperOctreePointsGrabber() VTK_OVERRIDE;
 
   int Dimension;
 
diff --git a/Common/DataModel/vtkHyperTreeCursor.h b/Common/DataModel/vtkHyperTreeCursor.h
index 6b2b95ef4436b303a524ed143d7c56e3202f33c9..b99032af5bf15623c335d482144d48077c161244 100644
--- a/Common/DataModel/vtkHyperTreeCursor.h
+++ b/Common/DataModel/vtkHyperTreeCursor.h
@@ -170,7 +170,7 @@ public:
 protected:
   // Constructor.
   vtkHyperTreeCursor();
-  virtual ~vtkHyperTreeCursor();
+  ~vtkHyperTreeCursor() VTK_OVERRIDE;
 
 private:
   vtkHyperTreeCursor(const vtkHyperTreeCursor&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkHyperTreeGrid.h b/Common/DataModel/vtkHyperTreeGrid.h
index 1eb849c3eba1049533e4d64dc558c4448f9894a1..5b6545f7e9fbc2fee6b348093fc16a27e46c0510 100644
--- a/Common/DataModel/vtkHyperTreeGrid.h
+++ b/Common/DataModel/vtkHyperTreeGrid.h
@@ -355,7 +355,7 @@ public:
 protected:
   // Constructor with default bounds (0,1, 0,1, 0,1).
   vtkHyperTreeGrid();
-  ~vtkHyperTreeGrid();
+  ~vtkHyperTreeGrid() VTK_OVERRIDE;
 
   void ComputeBounds() VTK_OVERRIDE;
 
diff --git a/Common/DataModel/vtkImageData.h b/Common/DataModel/vtkImageData.h
index 32f23be39a50aeab08d82a454b1d327049ab7fb5..a90666f295d80139f6d682194bab96bf6d4b561e 100644
--- a/Common/DataModel/vtkImageData.h
+++ b/Common/DataModel/vtkImageData.h
@@ -364,7 +364,7 @@ public:
 
 protected:
   vtkImageData();
-  ~vtkImageData();
+  ~vtkImageData() VTK_OVERRIDE;
 
   // The extent of what is currently in the structured grid.
   // Dimensions is just an array to return a value.
diff --git a/Common/DataModel/vtkImplicitBoolean.h b/Common/DataModel/vtkImplicitBoolean.h
index 3226790b24929bd7b151f9e72e66f3e385dc7daf..f7df4883f0c1b7b07e4fae1b63ea21ad5d869932 100644
--- a/Common/DataModel/vtkImplicitBoolean.h
+++ b/Common/DataModel/vtkImplicitBoolean.h
@@ -97,7 +97,7 @@ public:
 
 protected:
   vtkImplicitBoolean();
-  ~vtkImplicitBoolean();
+  ~vtkImplicitBoolean() VTK_OVERRIDE;
 
   vtkImplicitFunctionCollection *FunctionList;
 
diff --git a/Common/DataModel/vtkImplicitDataSet.h b/Common/DataModel/vtkImplicitDataSet.h
index be46204cdda28f067f5c91ec4e097ca1f88caf62..3ce15e07c8cf620878f9eff731d5d510cb6a791a 100644
--- a/Common/DataModel/vtkImplicitDataSet.h
+++ b/Common/DataModel/vtkImplicitDataSet.h
@@ -85,7 +85,7 @@ public:
 
 protected:
   vtkImplicitDataSet();
-  ~vtkImplicitDataSet();
+  ~vtkImplicitDataSet() VTK_OVERRIDE;
 
   void ReportReferences(vtkGarbageCollector*) VTK_OVERRIDE;
 
diff --git a/Common/DataModel/vtkImplicitFunction.h b/Common/DataModel/vtkImplicitFunction.h
index 7725b80ed534fa2db82006f26a09b7f48cf631a6..8be5434fe3b26d3890cb071bb8124dce8613f907 100644
--- a/Common/DataModel/vtkImplicitFunction.h
+++ b/Common/DataModel/vtkImplicitFunction.h
@@ -105,7 +105,7 @@ public:
 
 protected:
   vtkImplicitFunction();
-  ~vtkImplicitFunction();
+  ~vtkImplicitFunction() VTK_OVERRIDE;
 
   vtkAbstractTransform *Transform;
   double ReturnValue[3];
diff --git a/Common/DataModel/vtkImplicitFunctionCollection.h b/Common/DataModel/vtkImplicitFunctionCollection.h
index 1eb9c18b2c2c5605cf2e43ccac084a7c3f692afb..7cb190bed15c1016348a023980b85c0ee643882c 100644
--- a/Common/DataModel/vtkImplicitFunctionCollection.h
+++ b/Common/DataModel/vtkImplicitFunctionCollection.h
@@ -53,7 +53,7 @@ public:
 
 protected:
   vtkImplicitFunctionCollection() {}
-  ~vtkImplicitFunctionCollection() {}
+  ~vtkImplicitFunctionCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/DataModel/vtkImplicitHalo.h b/Common/DataModel/vtkImplicitHalo.h
index ace0fb439827e65fcbd71e106450957eebb79f3f..3b8a1c790a77c34acf513c371898f5a738af3af3 100644
--- a/Common/DataModel/vtkImplicitHalo.h
+++ b/Common/DataModel/vtkImplicitHalo.h
@@ -71,7 +71,7 @@ public:
 
 protected:
   vtkImplicitHalo();
-  virtual ~vtkImplicitHalo();
+  ~vtkImplicitHalo() VTK_OVERRIDE;
 
   double Radius;
   double Center[3];
diff --git a/Common/DataModel/vtkImplicitSelectionLoop.h b/Common/DataModel/vtkImplicitSelectionLoop.h
index daf5cd0991f3d9bbb41cbf172207a4475c7d55ca..c1cc84cd2df00aeb581f507f273d78d6b20f3314 100644
--- a/Common/DataModel/vtkImplicitSelectionLoop.h
+++ b/Common/DataModel/vtkImplicitSelectionLoop.h
@@ -99,7 +99,7 @@ public:
 
 protected:
   vtkImplicitSelectionLoop();
-  ~vtkImplicitSelectionLoop();
+  ~vtkImplicitSelectionLoop() VTK_OVERRIDE;
 
   vtkPoints *Loop;
   double Normal[3];
diff --git a/Common/DataModel/vtkImplicitSum.h b/Common/DataModel/vtkImplicitSum.h
index c1ad2d07a189c391774a19cb0a16643484519e19..fc4d47714f9afe2851a18332c4e8c4239aaeecd8 100644
--- a/Common/DataModel/vtkImplicitSum.h
+++ b/Common/DataModel/vtkImplicitSum.h
@@ -82,7 +82,7 @@ public:
 
 protected:
   vtkImplicitSum();
-  ~vtkImplicitSum();
+  ~vtkImplicitSum() VTK_OVERRIDE;
 
   vtkImplicitFunctionCollection *FunctionList;
   vtkDoubleArray *Weights;
diff --git a/Common/DataModel/vtkImplicitVolume.h b/Common/DataModel/vtkImplicitVolume.h
index c67f8788332041379e9105b6465f8e5c8d0999dc..fcfadb7fdc525238e740f4383b68569ae47d1d88 100644
--- a/Common/DataModel/vtkImplicitVolume.h
+++ b/Common/DataModel/vtkImplicitVolume.h
@@ -88,7 +88,7 @@ public:
 
 protected:
   vtkImplicitVolume();
-  ~vtkImplicitVolume();
+  ~vtkImplicitVolume() VTK_OVERRIDE;
 
   vtkImageData *Volume; // the structured points
   double OutValue;
diff --git a/Common/DataModel/vtkImplicitWindowFunction.h b/Common/DataModel/vtkImplicitWindowFunction.h
index 001208d8ee427c60dd8da79a86f24e689dfeda7c..3b8ac53952f5efb55a09b5567b61d48ffe7c168b 100644
--- a/Common/DataModel/vtkImplicitWindowFunction.h
+++ b/Common/DataModel/vtkImplicitWindowFunction.h
@@ -82,7 +82,7 @@ public:
 
 protected:
   vtkImplicitWindowFunction();
-  ~vtkImplicitWindowFunction();
+  ~vtkImplicitWindowFunction() VTK_OVERRIDE;
 
   void ReportReferences(vtkGarbageCollector*) VTK_OVERRIDE;
 
diff --git a/Common/DataModel/vtkInEdgeIterator.h b/Common/DataModel/vtkInEdgeIterator.h
index 2d7e97b7e8d22660b943bfa33d665f47f45d601a..3a13255ffb8dadc4fb63a0368ef4ee2562159b4a 100644
--- a/Common/DataModel/vtkInEdgeIterator.h
+++ b/Common/DataModel/vtkInEdgeIterator.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkInEdgeIterator();
-  ~vtkInEdgeIterator();
+  ~vtkInEdgeIterator() VTK_OVERRIDE;
 
   // Description:
   // Protected method for setting the graph used
diff --git a/Common/DataModel/vtkIncrementalOctreeNode.h b/Common/DataModel/vtkIncrementalOctreeNode.h
index bd107b3f8331033120f92e2f1b17b231ffb30134..579cf24cd2e8e488d95a5809ab935c91cefbfe30 100644
--- a/Common/DataModel/vtkIncrementalOctreeNode.h
+++ b/Common/DataModel/vtkIncrementalOctreeNode.h
@@ -189,7 +189,7 @@ public:
 protected:
 
   vtkIncrementalOctreeNode();
-  ~vtkIncrementalOctreeNode();
+  ~vtkIncrementalOctreeNode() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkIncrementalOctreePointLocator.h b/Common/DataModel/vtkIncrementalOctreePointLocator.h
index 055cea8207d46247023da1743efc858cfea104a7..441e44bc8c30ee6740f54e5bda7d85d440b40c42 100644
--- a/Common/DataModel/vtkIncrementalOctreePointLocator.h
+++ b/Common/DataModel/vtkIncrementalOctreePointLocator.h
@@ -279,7 +279,7 @@ public:
 protected:
 
   vtkIncrementalOctreePointLocator();
-  virtual ~vtkIncrementalOctreePointLocator();
+  ~vtkIncrementalOctreePointLocator() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkIncrementalPointLocator.h b/Common/DataModel/vtkIncrementalPointLocator.h
index 097a2875f308ae4327db9b1b79ca073fa1e78bd2..1ee74d49e82b46e3c77b495f0978a2230bde27a1 100644
--- a/Common/DataModel/vtkIncrementalPointLocator.h
+++ b/Common/DataModel/vtkIncrementalPointLocator.h
@@ -119,7 +119,7 @@ public:
 
 protected:
   vtkIncrementalPointLocator();
-  virtual ~vtkIncrementalPointLocator();
+  ~vtkIncrementalPointLocator() VTK_OVERRIDE;
 
 private:
   vtkIncrementalPointLocator( const vtkIncrementalPointLocator & ) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
index 2d0574c42d76443e873203c5d9f4d1e09e8de742..49f37bc78d3f1192fa1a44e53e3d1ea30acf89b5 100644
--- a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
+++ b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
@@ -42,7 +42,7 @@ public:
           const char* name,
           const char* location);
   //
-  ~vtkInformationQuadratureSchemeDefinitionVectorKey();
+  ~vtkInformationQuadratureSchemeDefinitionVectorKey() VTK_OVERRIDE;
 
   // Description:
   // Clear the vector.
diff --git a/Common/DataModel/vtkIterativeClosestPointTransform.h b/Common/DataModel/vtkIterativeClosestPointTransform.h
index 6ff093d84429918a55dfd05e57cfe10aed24a561..51ce523e473896fa16720e275fc40d1512ea6fa4 100644
--- a/Common/DataModel/vtkIterativeClosestPointTransform.h
+++ b/Common/DataModel/vtkIterativeClosestPointTransform.h
@@ -157,7 +157,7 @@ protected:
   vtkMTimeType GetMTime() VTK_OVERRIDE;
 
   vtkIterativeClosestPointTransform();
-  ~vtkIterativeClosestPointTransform();
+  ~vtkIterativeClosestPointTransform() VTK_OVERRIDE;
 
   void InternalUpdate() VTK_OVERRIDE;
 
diff --git a/Common/DataModel/vtkKdNode.h b/Common/DataModel/vtkKdNode.h
index fc0cde5fdb9a7b3f8e462e97a3789a99e077ebf2..a4721d6580c369a455bb2b36565608571dfad375 100644
--- a/Common/DataModel/vtkKdNode.h
+++ b/Common/DataModel/vtkKdNode.h
@@ -228,7 +228,7 @@ public:
 protected:
 
   vtkKdNode();
-  ~vtkKdNode();
+  ~vtkKdNode() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkKdTree.h b/Common/DataModel/vtkKdTree.h
index e46ae16d8ef898d05df30266e3e61d5e81a97e32..469f04d84b6ac06d7d583fe83351aec4c78e066e 100644
--- a/Common/DataModel/vtkKdTree.h
+++ b/Common/DataModel/vtkKdTree.h
@@ -542,7 +542,7 @@ public:
 protected:
 
   vtkKdTree();
-  ~vtkKdTree();
+  ~vtkKdTree() VTK_OVERRIDE;
 
   vtkBSPIntersections *BSPCalculator;
   int UserDefinedCuts;
diff --git a/Common/DataModel/vtkKdTreePointLocator.h b/Common/DataModel/vtkKdTreePointLocator.h
index 51fbfa8df1fc93efba72909639834fbb41326c4e..8234a263bd2bf60051fb488d9bf63773a06ad6ac 100644
--- a/Common/DataModel/vtkKdTreePointLocator.h
+++ b/Common/DataModel/vtkKdTreePointLocator.h
@@ -77,7 +77,7 @@ public:
 
 protected:
   vtkKdTreePointLocator();
-  virtual ~vtkKdTreePointLocator();
+  ~vtkKdTreePointLocator() VTK_OVERRIDE;
 
   vtkKdTree* KdTree;
 
diff --git a/Common/DataModel/vtkLine.h b/Common/DataModel/vtkLine.h
index e1ee71e78751a24dce85f0abfeee99d0e386d941..53070d1bd39745bbb904a83fc91f18f59757782d 100644
--- a/Common/DataModel/vtkLine.h
+++ b/Common/DataModel/vtkLine.h
@@ -164,7 +164,7 @@ public:
 
 protected:
   vtkLine();
-  ~vtkLine() {}
+  ~vtkLine() VTK_OVERRIDE {}
 
 private:
   vtkLine(const vtkLine&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkLocator.h b/Common/DataModel/vtkLocator.h
index e0a5bcc65cc4212561bf74b84fdc7189f4f8b293..4c8dead23678271e69720259e9c947df86e1de2d 100644
--- a/Common/DataModel/vtkLocator.h
+++ b/Common/DataModel/vtkLocator.h
@@ -139,7 +139,7 @@ public:
 
 protected:
   vtkLocator();
-  ~vtkLocator();
+  ~vtkLocator() VTK_OVERRIDE;
 
   vtkDataSet *DataSet;
   int Automatic; // boolean controls automatic subdivision (or uses user spec.)
diff --git a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
index ec9fcff5a6dfde61289225d1cbdfcafc935ec47d..cbd0c7f1d7e1098a0627d2fd0b32d251e903323e 100644
--- a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
+++ b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
@@ -80,7 +80,7 @@ public:
                                           vtkCellArray *tris, double *weights);
 protected:
   vtkMeanValueCoordinatesInterpolator();
-  ~vtkMeanValueCoordinatesInterpolator();
+  ~vtkMeanValueCoordinatesInterpolator() VTK_OVERRIDE;
 
   // Description:
   // Internal method that sets up the processing of triangular meshes.
diff --git a/Common/DataModel/vtkMergePoints.h b/Common/DataModel/vtkMergePoints.h
index 42c0dbe41d0b17120ad58ce7a2dd79c714eb534e..0fbc898f1b94d09f58793b6fbbb58e80cc472d87 100644
--- a/Common/DataModel/vtkMergePoints.h
+++ b/Common/DataModel/vtkMergePoints.h
@@ -53,7 +53,7 @@ public:
 
 protected:
   vtkMergePoints() {}
-  ~vtkMergePoints() {}
+  ~vtkMergePoints() VTK_OVERRIDE {}
 
 private:
   vtkMergePoints(const vtkMergePoints&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkMolecule.h b/Common/DataModel/vtkMolecule.h
index d2ead81989cfe79fc2bcd3305fc8f1a3968d1d18..d8cdeec47ac1aebc09076ab0c808ef7eb813f3f1 100644
--- a/Common/DataModel/vtkMolecule.h
+++ b/Common/DataModel/vtkMolecule.h
@@ -291,7 +291,7 @@ public:
 
  protected:
   vtkMolecule();
-  ~vtkMolecule();
+  ~vtkMolecule() VTK_OVERRIDE;
 
   // Description:
   // Copy bonds and atoms.
diff --git a/Common/DataModel/vtkMultiBlockDataSet.h b/Common/DataModel/vtkMultiBlockDataSet.h
index 10a7a427dfaacecefe0bad1e47d5d2f2bc8bbb10..64876d876cae705d33cbc6d7553d61539627d853 100644
--- a/Common/DataModel/vtkMultiBlockDataSet.h
+++ b/Common/DataModel/vtkMultiBlockDataSet.h
@@ -104,7 +104,7 @@ public:
 
 protected:
   vtkMultiBlockDataSet();
-  ~vtkMultiBlockDataSet();
+  ~vtkMultiBlockDataSet() VTK_OVERRIDE;
 
 private:
   vtkMultiBlockDataSet(const vtkMultiBlockDataSet&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkMultiPieceDataSet.h b/Common/DataModel/vtkMultiPieceDataSet.h
index 83a7bdb6a6434fbffd966d9806202c9c3054b1aa..b744d2a8c257cac5ac6cc1c75f63a7718ffe6517 100644
--- a/Common/DataModel/vtkMultiPieceDataSet.h
+++ b/Common/DataModel/vtkMultiPieceDataSet.h
@@ -96,7 +96,7 @@ public:
 
 protected:
   vtkMultiPieceDataSet();
-  ~vtkMultiPieceDataSet();
+  ~vtkMultiPieceDataSet() VTK_OVERRIDE;
 
 private:
   vtkMultiPieceDataSet(const vtkMultiPieceDataSet&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkMutableDirectedGraph.h b/Common/DataModel/vtkMutableDirectedGraph.h
index deae29361a930832990af8f92e3e64cec606009a..3c52e3eef947cacc99aa44bd9f884ec798338327 100644
--- a/Common/DataModel/vtkMutableDirectedGraph.h
+++ b/Common/DataModel/vtkMutableDirectedGraph.h
@@ -305,7 +305,7 @@ public:
 
 protected:
   vtkMutableDirectedGraph();
-  ~vtkMutableDirectedGraph();
+  ~vtkMutableDirectedGraph() VTK_OVERRIDE;
 
   // Description:
   // Graph edge that is reused of \p AddGraphEdge calls.
diff --git a/Common/DataModel/vtkMutableUndirectedGraph.h b/Common/DataModel/vtkMutableUndirectedGraph.h
index 3f530bfbd1e397a7d9bf689964bee68b4dcd3021..764d42d0f4971896a558e008baa77f9b15e963a6 100644
--- a/Common/DataModel/vtkMutableUndirectedGraph.h
+++ b/Common/DataModel/vtkMutableUndirectedGraph.h
@@ -298,7 +298,7 @@ public:
 
 protected:
   vtkMutableUndirectedGraph();
-  ~vtkMutableUndirectedGraph();
+  ~vtkMutableUndirectedGraph() VTK_OVERRIDE;
 
   // Description:
   // Graph edge that is reused of AddGraphEdge calls.
diff --git a/Common/DataModel/vtkNonLinearCell.h b/Common/DataModel/vtkNonLinearCell.h
index 8934c8f91236eed15c1eee7be5ce11a77f7375f4..96b687117b7d3b9755f456658df19ff2323d2593 100644
--- a/Common/DataModel/vtkNonLinearCell.h
+++ b/Common/DataModel/vtkNonLinearCell.h
@@ -44,7 +44,7 @@ public:
 
 protected:
   vtkNonLinearCell();
-  ~vtkNonLinearCell() {}
+  ~vtkNonLinearCell() VTK_OVERRIDE {}
 
 private:
   vtkNonLinearCell(const vtkNonLinearCell&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkNonMergingPointLocator.h b/Common/DataModel/vtkNonMergingPointLocator.h
index 6c45dd32ef3af7686da132eb1f0ce83dfdaf28d6..73c34b68a33c3a645a0e15607b081cb6b93d6a20 100644
--- a/Common/DataModel/vtkNonMergingPointLocator.h
+++ b/Common/DataModel/vtkNonMergingPointLocator.h
@@ -62,7 +62,7 @@ public:
 
 protected:
   vtkNonMergingPointLocator() { };
-  ~vtkNonMergingPointLocator() { };
+  ~vtkNonMergingPointLocator() VTK_OVERRIDE { };
 
 private:
   vtkNonMergingPointLocator( const vtkNonMergingPointLocator & ) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkNonOverlappingAMR.h b/Common/DataModel/vtkNonOverlappingAMR.h
index 0edf0098e75efb309a4d786fd11ef56ccdedf53e..09e730f6561f96e66a3e59e38f7354908bf9954e 100644
--- a/Common/DataModel/vtkNonOverlappingAMR.h
+++ b/Common/DataModel/vtkNonOverlappingAMR.h
@@ -47,7 +47,7 @@ class VTKCOMMONDATAMODEL_EXPORT vtkNonOverlappingAMR : public vtkUniformGridAMR
 
  protected:
   vtkNonOverlappingAMR();
-  virtual ~vtkNonOverlappingAMR();
+  ~vtkNonOverlappingAMR() VTK_OVERRIDE;
 
  private:
   vtkNonOverlappingAMR(const vtkNonOverlappingAMR&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkOctreePointLocator.h b/Common/DataModel/vtkOctreePointLocator.h
index b55322d1469da8302956a645f9278a55393c2215..d4e86c6b13f97a2a2d42324bf6b4750ecc39dc8b 100644
--- a/Common/DataModel/vtkOctreePointLocator.h
+++ b/Common/DataModel/vtkOctreePointLocator.h
@@ -157,7 +157,7 @@ public:
 protected:
 
   vtkOctreePointLocator();
-  ~vtkOctreePointLocator();
+  ~vtkOctreePointLocator() VTK_OVERRIDE;
 
   vtkOctreePointLocatorNode *Top;
   vtkOctreePointLocatorNode **LeafNodeList;      // indexed by region/node ID
diff --git a/Common/DataModel/vtkOctreePointLocatorNode.h b/Common/DataModel/vtkOctreePointLocatorNode.h
index 872c78778571d6044c957b8543ad5c64912afae2..e50d7a09f74c6d2a37408a15336e7efc4ac0c5fc 100644
--- a/Common/DataModel/vtkOctreePointLocatorNode.h
+++ b/Common/DataModel/vtkOctreePointLocatorNode.h
@@ -206,7 +206,7 @@ public:
 
 protected:
   vtkOctreePointLocatorNode();
-  ~vtkOctreePointLocatorNode();
+  ~vtkOctreePointLocatorNode() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkOrderedTriangulator.h b/Common/DataModel/vtkOrderedTriangulator.h
index 861f9b887a26946a94d3d61c506d425d01e40674..4c686ea7ff3553386b06723ccc399c6c92644f88 100644
--- a/Common/DataModel/vtkOrderedTriangulator.h
+++ b/Common/DataModel/vtkOrderedTriangulator.h
@@ -299,7 +299,7 @@ public:
 
 protected:
   vtkOrderedTriangulator();
-  ~vtkOrderedTriangulator();
+  ~vtkOrderedTriangulator() VTK_OVERRIDE;
 
 private:
   void       Initialize();
diff --git a/Common/DataModel/vtkOutEdgeIterator.h b/Common/DataModel/vtkOutEdgeIterator.h
index 680689de5d248f195e2c95fce1b6c5bdb2b29183..08ab9fed8f241c7e724a3bf55cfb209639f300fa 100644
--- a/Common/DataModel/vtkOutEdgeIterator.h
+++ b/Common/DataModel/vtkOutEdgeIterator.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkOutEdgeIterator();
-  ~vtkOutEdgeIterator();
+  ~vtkOutEdgeIterator() VTK_OVERRIDE;
 
   // Description:
   // Protected method for setting the graph used
diff --git a/Common/DataModel/vtkOverlappingAMR.h b/Common/DataModel/vtkOverlappingAMR.h
index 75dc0815e209d5d12d2796fb4b3aa0b0556c3674..00d1b6b72b74e9cc911328c4c92bfd0a4deb652a 100644
--- a/Common/DataModel/vtkOverlappingAMR.h
+++ b/Common/DataModel/vtkOverlappingAMR.h
@@ -152,7 +152,7 @@ public:
   void Audit();
  protected:
   vtkOverlappingAMR();
-  virtual ~vtkOverlappingAMR();
+  ~vtkOverlappingAMR() VTK_OVERRIDE;
 
 private:
   vtkOverlappingAMR(const vtkOverlappingAMR&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkPath.h b/Common/DataModel/vtkPath.h
index d1ba0ddbff54f17c2fa3a30d26f6ca0eac7a7585..3cdff5fc030fa3b550a70bbd483b86d13695ec39 100644
--- a/Common/DataModel/vtkPath.h
+++ b/Common/DataModel/vtkPath.h
@@ -106,7 +106,7 @@ public:
 
 protected:
   vtkPath();
-  ~vtkPath();
+  ~vtkPath() VTK_OVERRIDE;
 
 private:
   vtkPath(const vtkPath&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkPentagonalPrism.h b/Common/DataModel/vtkPentagonalPrism.h
index ef4c0522d4fb77831cea27398bdd09c5f8f99ca3..1f67a7e05f01214a02e98c23f0f50bf73325e4b7 100644
--- a/Common/DataModel/vtkPentagonalPrism.h
+++ b/Common/DataModel/vtkPentagonalPrism.h
@@ -116,7 +116,7 @@ public:
 
 protected:
   vtkPentagonalPrism();
-  ~vtkPentagonalPrism();
+  ~vtkPentagonalPrism() VTK_OVERRIDE;
 
   vtkLine          *Line;
   vtkQuad          *Quad;
diff --git a/Common/DataModel/vtkPerlinNoise.h b/Common/DataModel/vtkPerlinNoise.h
index 1ab2baea75c288f1f40ad5acac59cb3dae5c34c0..07718fb63a4a7b4502ebd9f4c7856c9234d65c88 100644
--- a/Common/DataModel/vtkPerlinNoise.h
+++ b/Common/DataModel/vtkPerlinNoise.h
@@ -78,7 +78,7 @@ public:
 
 protected:
   vtkPerlinNoise();
-  ~vtkPerlinNoise() {}
+  ~vtkPerlinNoise() VTK_OVERRIDE {}
 
   double Frequency[3];
   double Phase[3];
diff --git a/Common/DataModel/vtkPiecewiseFunction.h b/Common/DataModel/vtkPiecewiseFunction.h
index 6f54c3bc01d72ddaa7e68873517dcf791585c956..49887e4f1dac00c47f7f9ce6fa1b56cb4e4bcfde 100644
--- a/Common/DataModel/vtkPiecewiseFunction.h
+++ b/Common/DataModel/vtkPiecewiseFunction.h
@@ -172,7 +172,7 @@ public:
 
 protected:
   vtkPiecewiseFunction();
-  ~vtkPiecewiseFunction();
+  ~vtkPiecewiseFunction() VTK_OVERRIDE;
 
   // Internal method to sort the vector and update the
   // Range whenever a node is added, edited or removed.
diff --git a/Common/DataModel/vtkPixel.h b/Common/DataModel/vtkPixel.h
index 3bec3a5c6585d518a885cf4f553f8955d28d9f72..1f2dff25e4a012407d4c0275949d305fa9e86dd7 100644
--- a/Common/DataModel/vtkPixel.h
+++ b/Common/DataModel/vtkPixel.h
@@ -91,7 +91,7 @@ public:
 
 protected:
   vtkPixel();
-  ~vtkPixel();
+  ~vtkPixel() VTK_OVERRIDE;
 
   vtkLine *Line;
 
diff --git a/Common/DataModel/vtkPlane.h b/Common/DataModel/vtkPlane.h
index ffa76dd7a0f7bf494e965ff22a2fbb7f7f05e722..442409bd9b5c0b1bf1b7552706d6b24d5ae63222 100644
--- a/Common/DataModel/vtkPlane.h
+++ b/Common/DataModel/vtkPlane.h
@@ -109,7 +109,7 @@ public:
 
 protected:
   vtkPlane();
-  ~vtkPlane() {}
+  ~vtkPlane() VTK_OVERRIDE {}
 
   double Normal[3];
   double Origin[3];
diff --git a/Common/DataModel/vtkPlaneCollection.h b/Common/DataModel/vtkPlaneCollection.h
index ae7b05c0126faa62671f4739d0f050f7a74d3794..69f83671047b3a8aa713d871088918b8cc221c5d 100644
--- a/Common/DataModel/vtkPlaneCollection.h
+++ b/Common/DataModel/vtkPlaneCollection.h
@@ -53,7 +53,7 @@ public:
 
 protected:
   vtkPlaneCollection() {}
-  ~vtkPlaneCollection() {}
+  ~vtkPlaneCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/DataModel/vtkPlanes.h b/Common/DataModel/vtkPlanes.h
index 547d02419b42bed9bd6fe5a4d75aed69b05e5142..faf5b2b7fbf7c1b8c08d10cf4d191476b5b54a17 100644
--- a/Common/DataModel/vtkPlanes.h
+++ b/Common/DataModel/vtkPlanes.h
@@ -102,7 +102,7 @@ public:
 
 protected:
   vtkPlanes();
-  ~vtkPlanes();
+  ~vtkPlanes() VTK_OVERRIDE;
 
   vtkPoints *Points;
   vtkDataArray *Normals;
diff --git a/Common/DataModel/vtkPlanesIntersection.h b/Common/DataModel/vtkPlanesIntersection.h
index e1c7816b930742d6dae55420c0c41a31cc76d553..297e51837da69df8838e6063e0bab9778c91a694 100644
--- a/Common/DataModel/vtkPlanesIntersection.h
+++ b/Common/DataModel/vtkPlanesIntersection.h
@@ -102,7 +102,7 @@ protected:
   static int Invert3x3(double M[3][3]);
 
   vtkPlanesIntersection();
-  ~vtkPlanesIntersection();
+  ~vtkPlanesIntersection() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkPointData.h b/Common/DataModel/vtkPointData.h
index c94ed891b15b0cde3e5078dda9ae0c82ce338aea..314cf872acb170d784abf290a235759665a7e58d 100644
--- a/Common/DataModel/vtkPointData.h
+++ b/Common/DataModel/vtkPointData.h
@@ -36,7 +36,7 @@ public:
 
 protected:
   vtkPointData() {}
-  ~vtkPointData() {}
+  ~vtkPointData() VTK_OVERRIDE {}
 
 private:
   vtkPointData(const vtkPointData&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkPointLocator.h b/Common/DataModel/vtkPointLocator.h
index 20f438e6e9783483261cc9d6ba30e9e42da565df..40fe0628e0e7b729d63b4669f9aed6714481bea3 100644
--- a/Common/DataModel/vtkPointLocator.h
+++ b/Common/DataModel/vtkPointLocator.h
@@ -206,7 +206,7 @@ public:
 
 protected:
   vtkPointLocator();
-  virtual ~vtkPointLocator();
+  ~vtkPointLocator() VTK_OVERRIDE;
 
   // place points in appropriate buckets
   void GetBucketNeighbors(vtkNeighborPoints* buckets,
diff --git a/Common/DataModel/vtkPointSet.h b/Common/DataModel/vtkPointSet.h
index 132894878fba244c301a70667fb4be316837b328..d4e3153174de780f6a635f50084e36e77741d6cb 100644
--- a/Common/DataModel/vtkPointSet.h
+++ b/Common/DataModel/vtkPointSet.h
@@ -118,7 +118,7 @@ public:
 
 protected:
   vtkPointSet();
-  ~vtkPointSet();
+  ~vtkPointSet() VTK_OVERRIDE;
 
   vtkPoints *Points;
   vtkPointLocator *Locator;
diff --git a/Common/DataModel/vtkPointSetCellIterator.h b/Common/DataModel/vtkPointSetCellIterator.h
index a5a604ece5b772d1ee94e8291b520acc52cc6d91..04b76f0d25e80d1323659118626884e050c20faf 100644
--- a/Common/DataModel/vtkPointSetCellIterator.h
+++ b/Common/DataModel/vtkPointSetCellIterator.h
@@ -37,7 +37,7 @@ public:
 
 protected:
   vtkPointSetCellIterator();
-  ~vtkPointSetCellIterator();
+  ~vtkPointSetCellIterator() VTK_OVERRIDE;
 
   void ResetToFirstCell() VTK_OVERRIDE;
   void IncrementToNextCell() VTK_OVERRIDE;
diff --git a/Common/DataModel/vtkPointsProjectedHull.h b/Common/DataModel/vtkPointsProjectedHull.h
index d5872d5c04efc5ce5aed9b9ece6293aeb133f058..5de8c46da3c3e1aa027a5065090ebad8335fcfcf 100644
--- a/Common/DataModel/vtkPointsProjectedHull.h
+++ b/Common/DataModel/vtkPointsProjectedHull.h
@@ -132,7 +132,7 @@ public:
 protected:
 
     vtkPointsProjectedHull();
-    ~vtkPointsProjectedHull();
+    ~vtkPointsProjectedHull() VTK_OVERRIDE;
 
 private:
 
diff --git a/Common/DataModel/vtkPolyData.h b/Common/DataModel/vtkPolyData.h
index fdc6c7cc97910b97e7f2b80d074918745c233201..8ef07fe18a7ed0bb4229bef06f5c31ec965d312b 100644
--- a/Common/DataModel/vtkPolyData.h
+++ b/Common/DataModel/vtkPolyData.h
@@ -448,7 +448,7 @@ public:
 
 protected:
   vtkPolyData();
-  ~vtkPolyData();
+  ~vtkPolyData() VTK_OVERRIDE;
 
   // constant cell objects returned by GetCell called.
   vtkVertex *Vertex;
diff --git a/Common/DataModel/vtkPolyDataCollection.h b/Common/DataModel/vtkPolyDataCollection.h
index 7b23891f4194417c262f12438c3e4e13455f46f1..5826a38577b8c91ad9fac798538c225cc4959adf 100644
--- a/Common/DataModel/vtkPolyDataCollection.h
+++ b/Common/DataModel/vtkPolyDataCollection.h
@@ -55,7 +55,7 @@ public:
 
 protected:
   vtkPolyDataCollection() {}
-  ~vtkPolyDataCollection() {}
+  ~vtkPolyDataCollection() VTK_OVERRIDE {}
 
 private:
   // hide the standard AddItem from the user and the compiler.
diff --git a/Common/DataModel/vtkPolyLine.h b/Common/DataModel/vtkPolyLine.h
index c01bfba7125196b3a35b8331b6a681f85e09c3c1..913d20b132d38c3926946bdea5055879e77cd97d 100644
--- a/Common/DataModel/vtkPolyLine.h
+++ b/Common/DataModel/vtkPolyLine.h
@@ -84,7 +84,7 @@ public:
 
 protected:
   vtkPolyLine();
-  ~vtkPolyLine();
+  ~vtkPolyLine() VTK_OVERRIDE;
 
   vtkLine *Line;
 
diff --git a/Common/DataModel/vtkPolyPlane.h b/Common/DataModel/vtkPolyPlane.h
index 74503f367ef6349b04d30b0ea71b4020150239d2..322077bc8788190c38fff64a1187d59e753e4853 100644
--- a/Common/DataModel/vtkPolyPlane.h
+++ b/Common/DataModel/vtkPolyPlane.h
@@ -64,7 +64,7 @@ public:
 
 protected:
   vtkPolyPlane();
-  ~vtkPolyPlane();
+  ~vtkPolyPlane() VTK_OVERRIDE;
 
   void ComputeNormals();
 
diff --git a/Common/DataModel/vtkPolyVertex.h b/Common/DataModel/vtkPolyVertex.h
index 088c2964acd1bc076cbb02e9dfcf253b581a09ef..f3c3067860544b8d7aeb4e30829afe78d897e76f 100644
--- a/Common/DataModel/vtkPolyVertex.h
+++ b/Common/DataModel/vtkPolyVertex.h
@@ -70,7 +70,7 @@ public:
 
 protected:
   vtkPolyVertex();
-  ~vtkPolyVertex();
+  ~vtkPolyVertex() VTK_OVERRIDE;
 
   vtkVertex *Vertex;
 
diff --git a/Common/DataModel/vtkPolygon.h b/Common/DataModel/vtkPolygon.h
index 719d5471ca4a96a685f56079e91eaeebcb7c5139..8e9577cad311ddc6b63ab4d7e79a72521f99448e 100644
--- a/Common/DataModel/vtkPolygon.h
+++ b/Common/DataModel/vtkPolygon.h
@@ -203,7 +203,7 @@ public:
 
 protected:
   vtkPolygon();
-  ~vtkPolygon();
+  ~vtkPolygon() VTK_OVERRIDE;
 
   // Compute the interpolation functions using Mean Value Coordinate.
   void InterpolateFunctionsUsingMVC(double x[3], double *weights);
diff --git a/Common/DataModel/vtkPolyhedron.h b/Common/DataModel/vtkPolyhedron.h
index 771e4493d7ee23ca065eff9339022931729996fa..015a48c0585469aedb236e6c455853b8e8131d06 100644
--- a/Common/DataModel/vtkPolyhedron.h
+++ b/Common/DataModel/vtkPolyhedron.h
@@ -208,7 +208,7 @@ public:
 
 protected:
   vtkPolyhedron();
-  ~vtkPolyhedron();
+  ~vtkPolyhedron() VTK_OVERRIDE;
 
   // Internal classes for supporting operations on this cell
   vtkLine        *Line;
diff --git a/Common/DataModel/vtkPyramid.h b/Common/DataModel/vtkPyramid.h
index cd23cde6d52441bdabeda5814eba5f501c1b6e22..241bd1e0703b866f78178d28b49995bd60aeaf3b 100644
--- a/Common/DataModel/vtkPyramid.h
+++ b/Common/DataModel/vtkPyramid.h
@@ -107,7 +107,7 @@ public:
 
 protected:
   vtkPyramid();
-  ~vtkPyramid();
+  ~vtkPyramid() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkTriangle *Triangle;
diff --git a/Common/DataModel/vtkQuad.h b/Common/DataModel/vtkQuad.h
index 7405ec1ac83810671e7400741ea65a2068f95ac8..f824067467e2721a8d8ab0126ab68a8b328f0fe5 100644
--- a/Common/DataModel/vtkQuad.h
+++ b/Common/DataModel/vtkQuad.h
@@ -100,7 +100,7 @@ public:
 
 protected:
   vtkQuad();
-  ~vtkQuad();
+  ~vtkQuad() VTK_OVERRIDE;
 
   vtkLine     *Line;
   vtkTriangle *Triangle;
diff --git a/Common/DataModel/vtkQuadraticEdge.h b/Common/DataModel/vtkQuadraticEdge.h
index 880a94aa24d054f4b872566f7b724498d0f92c05..fb8744891d74d40b35cf8735a9ad715727daa419 100644
--- a/Common/DataModel/vtkQuadraticEdge.h
+++ b/Common/DataModel/vtkQuadraticEdge.h
@@ -106,7 +106,7 @@ public:
 
 protected:
   vtkQuadraticEdge();
-  ~vtkQuadraticEdge();
+  ~vtkQuadraticEdge() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkDoubleArray *Scalars; //used to avoid New/Delete in contouring/clipping
diff --git a/Common/DataModel/vtkQuadraticHexahedron.h b/Common/DataModel/vtkQuadraticHexahedron.h
index 3bcee670c8ab8f47214bb4440bb2ac109a218ab2..1db5a88bc380a8ebd4ce00f8f9b1dd5dd3f8f1f2 100644
--- a/Common/DataModel/vtkQuadraticHexahedron.h
+++ b/Common/DataModel/vtkQuadraticHexahedron.h
@@ -120,7 +120,7 @@ public:
 
 protected:
   vtkQuadraticHexahedron();
-  ~vtkQuadraticHexahedron();
+  ~vtkQuadraticHexahedron() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticQuad *Face;
diff --git a/Common/DataModel/vtkQuadraticLinearQuad.h b/Common/DataModel/vtkQuadraticLinearQuad.h
index 36a2a34b1259da5357d3688bc599e2001a05ff33..ae16b41c12ebfc3e884badcaf42c6b7ebc4a636c 100644
--- a/Common/DataModel/vtkQuadraticLinearQuad.h
+++ b/Common/DataModel/vtkQuadraticLinearQuad.h
@@ -116,7 +116,7 @@ public:
 
 protected:
   vtkQuadraticLinearQuad ();
-  ~vtkQuadraticLinearQuad ();
+  ~vtkQuadraticLinearQuad () VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkLine *LinEdge;
diff --git a/Common/DataModel/vtkQuadraticLinearWedge.h b/Common/DataModel/vtkQuadraticLinearWedge.h
index a692808e7d98449268d2f43b0cf8ef49411e4596..a5411c131d39d153279978040cf959ec08bb1a0c 100644
--- a/Common/DataModel/vtkQuadraticLinearWedge.h
+++ b/Common/DataModel/vtkQuadraticLinearWedge.h
@@ -133,7 +133,7 @@ public:
 
 protected:
   vtkQuadraticLinearWedge ();
-  ~vtkQuadraticLinearWedge ();
+  ~vtkQuadraticLinearWedge () VTK_OVERRIDE;
 
   vtkQuadraticEdge *QuadEdge;
   vtkLine *Edge;
diff --git a/Common/DataModel/vtkQuadraticPolygon.h b/Common/DataModel/vtkQuadraticPolygon.h
index 00631af3f3836aaff42d135d7286376a6bf7a807..5f254316e44ef193b9e32bbb24cb182db19f883c 100644
--- a/Common/DataModel/vtkQuadraticPolygon.h
+++ b/Common/DataModel/vtkQuadraticPolygon.h
@@ -112,7 +112,7 @@ public:
 
 protected:
   vtkQuadraticPolygon();
-  ~vtkQuadraticPolygon();
+  ~vtkQuadraticPolygon() VTK_OVERRIDE;
 
   // variables used by instances of this class
   vtkPolygon       *Polygon;
diff --git a/Common/DataModel/vtkQuadraticPyramid.h b/Common/DataModel/vtkQuadraticPyramid.h
index ddf7ae28be88b2d9b39f090151f277dfbd70e3fa..c71377423ba2e445d7e3ecb7d7c969db979a6387 100644
--- a/Common/DataModel/vtkQuadraticPyramid.h
+++ b/Common/DataModel/vtkQuadraticPyramid.h
@@ -131,7 +131,7 @@ public:
 
 protected:
   vtkQuadraticPyramid();
-  ~vtkQuadraticPyramid();
+  ~vtkQuadraticPyramid() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticTriangle *TriangleFace;
diff --git a/Common/DataModel/vtkQuadraticQuad.h b/Common/DataModel/vtkQuadraticQuad.h
index 0f48d6f8d51a143a865fe0b79187463fd3a470d6..e02861471b5e114719cab21dfd480bbe795c7c29 100644
--- a/Common/DataModel/vtkQuadraticQuad.h
+++ b/Common/DataModel/vtkQuadraticQuad.h
@@ -111,7 +111,7 @@ public:
 
 protected:
   vtkQuadraticQuad();
-  ~vtkQuadraticQuad();
+  ~vtkQuadraticQuad() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuad          *Quad;
diff --git a/Common/DataModel/vtkQuadraticTetra.h b/Common/DataModel/vtkQuadraticTetra.h
index 1a66f83671c69687c58d1dd2dd1d8cad86785c1e..fbb0fe5cc4f8bd5cd02df5aab91c6b36725dd2bb 100644
--- a/Common/DataModel/vtkQuadraticTetra.h
+++ b/Common/DataModel/vtkQuadraticTetra.h
@@ -131,7 +131,7 @@ public:
 
 protected:
   vtkQuadraticTetra();
-  ~vtkQuadraticTetra();
+  ~vtkQuadraticTetra() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticTriangle *Face;
diff --git a/Common/DataModel/vtkQuadraticTriangle.h b/Common/DataModel/vtkQuadraticTriangle.h
index 509dd9f39db1968ff0a39757b1aaf6555090efed..69fff9e956475aa246e47058bdfb911e76fff4a4 100644
--- a/Common/DataModel/vtkQuadraticTriangle.h
+++ b/Common/DataModel/vtkQuadraticTriangle.h
@@ -116,7 +116,7 @@ public:
 
 protected:
   vtkQuadraticTriangle();
-  ~vtkQuadraticTriangle();
+  ~vtkQuadraticTriangle() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkTriangle      *Face;
diff --git a/Common/DataModel/vtkQuadraticWedge.h b/Common/DataModel/vtkQuadraticWedge.h
index b8c915439e8d9b1f2fd7623df0f26c1db06ef6ac..9e1918d2eb7873209ce8d923ace216f00df9737a 100644
--- a/Common/DataModel/vtkQuadraticWedge.h
+++ b/Common/DataModel/vtkQuadraticWedge.h
@@ -127,7 +127,7 @@ public:
 
 protected:
   vtkQuadraticWedge();
-  ~vtkQuadraticWedge();
+  ~vtkQuadraticWedge() VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkQuadraticTriangle *TriangleFace;
diff --git a/Common/DataModel/vtkQuadratureSchemeDefinition.h b/Common/DataModel/vtkQuadratureSchemeDefinition.h
index fdcd00c93871fd57878a49dc7f4ca60310789d46..af7141feb544c267293c2f8d8f2eccac486845de 100644
--- a/Common/DataModel/vtkQuadratureSchemeDefinition.h
+++ b/Common/DataModel/vtkQuadratureSchemeDefinition.h
@@ -116,7 +116,7 @@ public:
 
 protected:
   vtkQuadratureSchemeDefinition();
-  ~vtkQuadratureSchemeDefinition();
+  ~vtkQuadratureSchemeDefinition() VTK_OVERRIDE;
 private:
   // Description:
   // Allocate/De-allocate resources that will be used by the definition.
diff --git a/Common/DataModel/vtkQuadric.h b/Common/DataModel/vtkQuadric.h
index ebddd669b6b76361ca8d04e4e1b5035a3c973713..3b3819b84cdc3714f2242f0fe9ab87f6b8ecfd90 100644
--- a/Common/DataModel/vtkQuadric.h
+++ b/Common/DataModel/vtkQuadric.h
@@ -53,7 +53,7 @@ public:
 
 protected:
   vtkQuadric();
-  ~vtkQuadric() {}
+  ~vtkQuadric() VTK_OVERRIDE {}
 
   double Coefficients[10];
 
diff --git a/Common/DataModel/vtkRectilinearGrid.h b/Common/DataModel/vtkRectilinearGrid.h
index 95ba4c066345aba175224dc10438866dd7794828..3fd3456beb2624a9336ba50ed04d269a700ecc6b 100644
--- a/Common/DataModel/vtkRectilinearGrid.h
+++ b/Common/DataModel/vtkRectilinearGrid.h
@@ -189,7 +189,7 @@ public:
 
 protected:
   vtkRectilinearGrid();
-  ~vtkRectilinearGrid();
+  ~vtkRectilinearGrid() VTK_OVERRIDE;
 
   // for the GetCell method
   vtkVertex *Vertex;
diff --git a/Common/DataModel/vtkReebGraph.h b/Common/DataModel/vtkReebGraph.h
index afbe3c08bb3e1eb81303cb2080dec32e37643ff7..f043fed1c344a64827e09f9ce8bafe700b3faa0a 100644
--- a/Common/DataModel/vtkReebGraph.h
+++ b/Common/DataModel/vtkReebGraph.h
@@ -352,7 +352,7 @@ public:
 protected:
 
   vtkReebGraph();
-  ~vtkReebGraph();
+  ~vtkReebGraph() VTK_OVERRIDE;
 
   class Implementation;
   Implementation* Storage;
diff --git a/Common/DataModel/vtkReebGraphSimplificationMetric.h b/Common/DataModel/vtkReebGraphSimplificationMetric.h
index 6ba4effd795a826ad008b0bfd51f0de3f0a95d89..5cfcffdff2a9552300220e790573ecf968fb6d46 100644
--- a/Common/DataModel/vtkReebGraphSimplificationMetric.h
+++ b/Common/DataModel/vtkReebGraphSimplificationMetric.h
@@ -86,7 +86,7 @@ public:
 
 protected:
   vtkReebGraphSimplificationMetric();
-  ~vtkReebGraphSimplificationMetric();
+  ~vtkReebGraphSimplificationMetric() VTK_OVERRIDE;
 
   double    LowerBound, UpperBound;
 
diff --git a/Common/DataModel/vtkSelection.h b/Common/DataModel/vtkSelection.h
index b55dc1ad9818c11e8eeb174afb096ce0dc593f58..64f4e1f954f8f6ff457c10062e0e123469b7f452 100644
--- a/Common/DataModel/vtkSelection.h
+++ b/Common/DataModel/vtkSelection.h
@@ -115,7 +115,7 @@ public:
 
 protected:
   vtkSelection();
-  ~vtkSelection();
+  ~vtkSelection() VTK_OVERRIDE;
 
 private:
   vtkSelection(const vtkSelection&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkSelectionNode.h b/Common/DataModel/vtkSelectionNode.h
index 3fe869fca46a2e86ec14d95fde7adb8881fca04b..8f9cf52215f152c3a4bbad98ab0ef52a71a01097 100644
--- a/Common/DataModel/vtkSelectionNode.h
+++ b/Common/DataModel/vtkSelectionNode.h
@@ -246,7 +246,7 @@ public:
 
 protected:
   vtkSelectionNode();
-  ~vtkSelectionNode();
+  ~vtkSelectionNode() VTK_OVERRIDE;
 
   vtkInformation* Properties;
   vtkDataSetAttributes* SelectionData;
diff --git a/Common/DataModel/vtkSimpleCellTessellator.h b/Common/DataModel/vtkSimpleCellTessellator.h
index 090a4180d30c46de95e15c3cf86ba3ca4dc06ebb..1dfda95f09839e8ab242340e37d47397cfb76d1b 100644
--- a/Common/DataModel/vtkSimpleCellTessellator.h
+++ b/Common/DataModel/vtkSimpleCellTessellator.h
@@ -187,7 +187,7 @@ public:
 
 protected:
   vtkSimpleCellTessellator();
-  ~vtkSimpleCellTessellator();
+  ~vtkSimpleCellTessellator() VTK_OVERRIDE;
 
   // Description:
   // Extract point `pointId' from the edge table to the output point and output
diff --git a/Common/DataModel/vtkSmoothErrorMetric.h b/Common/DataModel/vtkSmoothErrorMetric.h
index 4184547cb8f59733ff97f29a1ed8a42022ba611e..764076fad962c75730cb1cddf942b75f66c94369 100644
--- a/Common/DataModel/vtkSmoothErrorMetric.h
+++ b/Common/DataModel/vtkSmoothErrorMetric.h
@@ -95,7 +95,7 @@ public:
 
 protected:
   vtkSmoothErrorMetric();
-  virtual ~vtkSmoothErrorMetric();
+  ~vtkSmoothErrorMetric() VTK_OVERRIDE;
 
   double AngleTolerance;
   double CosTolerance;
diff --git a/Common/DataModel/vtkSortFieldData.h b/Common/DataModel/vtkSortFieldData.h
index eac789d245d2f392da272909d2a11b4c06873769..2077ba9ee44ac2c0192c6d17ad072f842c2644eb 100644
--- a/Common/DataModel/vtkSortFieldData.h
+++ b/Common/DataModel/vtkSortFieldData.h
@@ -98,7 +98,7 @@ public:
 
 protected:
   vtkSortFieldData();
-  virtual ~vtkSortFieldData();
+  ~vtkSortFieldData() VTK_OVERRIDE;
 
 private:
   vtkSortFieldData(const vtkSortFieldData &) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkSphere.h b/Common/DataModel/vtkSphere.h
index 13f969feb4d3c3df9fdda6642c2481a3a3306170..a16066fc9f2407a3401eea32afb9b29b894675fc 100644
--- a/Common/DataModel/vtkSphere.h
+++ b/Common/DataModel/vtkSphere.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkSphere();
-  ~vtkSphere() {}
+  ~vtkSphere() VTK_OVERRIDE {}
 
   double Radius;
   double Center[3];
diff --git a/Common/DataModel/vtkSpline.h b/Common/DataModel/vtkSpline.h
index 9d7a3f3d19763b3a8e3a9602c524ea8fcec57e38..050f2decbe23e5301584e95f40e0969bdaed73d4 100644
--- a/Common/DataModel/vtkSpline.h
+++ b/Common/DataModel/vtkSpline.h
@@ -150,7 +150,7 @@ public:
 
 protected:
   vtkSpline();
-  ~vtkSpline();
+  ~vtkSpline() VTK_OVERRIDE;
 
   vtkMTimeType ComputeTime;
   int ClampValue;
diff --git a/Common/DataModel/vtkStaticCellLinks.h b/Common/DataModel/vtkStaticCellLinks.h
index ba9393ec900b1263218795bf90c8dfe87dff87d7..2ce6f21178cd4de833fc54d80b3a3e3a7caec432 100644
--- a/Common/DataModel/vtkStaticCellLinks.h
+++ b/Common/DataModel/vtkStaticCellLinks.h
@@ -86,7 +86,7 @@ public:
 
 protected:
   vtkStaticCellLinks();
-  virtual ~vtkStaticCellLinks();
+  ~vtkStaticCellLinks() VTK_OVERRIDE;
 
   vtkStaticCellLinksTemplate<vtkIdType> *Impl;
 
diff --git a/Common/DataModel/vtkStaticPointLocator.h b/Common/DataModel/vtkStaticPointLocator.h
index 46af07b5704b95dcf5bbe1b7efc603f81e157598..3343c0410824c4d102937b77750a7f3409714be5 100644
--- a/Common/DataModel/vtkStaticPointLocator.h
+++ b/Common/DataModel/vtkStaticPointLocator.h
@@ -151,7 +151,7 @@ public:
 
 protected:
   vtkStaticPointLocator();
-  virtual ~vtkStaticPointLocator();
+  ~vtkStaticPointLocator() VTK_OVERRIDE;
 
   int NumberOfPointsPerBucket; // Used with AutomaticOn to control subdivide
   int Divisions[3]; // Number of sub-divisions in x-y-z directions
diff --git a/Common/DataModel/vtkStructuredData.h b/Common/DataModel/vtkStructuredData.h
index 58d50b40e97b7976f2291754c52e11e161d41737..cb60dede94467996228ea4d4f25a27b2bef6b891 100644
--- a/Common/DataModel/vtkStructuredData.h
+++ b/Common/DataModel/vtkStructuredData.h
@@ -202,7 +202,7 @@ public:
 
 protected:
   vtkStructuredData() {}
-  ~vtkStructuredData() {}
+  ~vtkStructuredData() VTK_OVERRIDE {}
 
   // Description:
   // Computes the linear index for the given i-j-k structured of a grid with
diff --git a/Common/DataModel/vtkStructuredExtent.h b/Common/DataModel/vtkStructuredExtent.h
index a5f25aab64b5e59611b2a68d58db36198fab8dcc..fb9f8bff583823ba84cdc670014d41f1be1381d8 100644
--- a/Common/DataModel/vtkStructuredExtent.h
+++ b/Common/DataModel/vtkStructuredExtent.h
@@ -61,7 +61,7 @@ public:
 
 protected:
   vtkStructuredExtent();
-  ~vtkStructuredExtent();
+  ~vtkStructuredExtent() VTK_OVERRIDE;
 
 private:
   vtkStructuredExtent(const vtkStructuredExtent&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkStructuredGrid.h b/Common/DataModel/vtkStructuredGrid.h
index bd1f0ca91952b402b502932913b507bc2f0a82a4..0605b1eecf35eacef8aac3feea660de47546cab8 100644
--- a/Common/DataModel/vtkStructuredGrid.h
+++ b/Common/DataModel/vtkStructuredGrid.h
@@ -197,7 +197,7 @@ public:
 
 protected:
   vtkStructuredGrid();
-  ~vtkStructuredGrid();
+  ~vtkStructuredGrid() VTK_OVERRIDE;
 
   // for the GetCell method
   vtkVertex *Vertex;
diff --git a/Common/DataModel/vtkStructuredPoints.h b/Common/DataModel/vtkStructuredPoints.h
index b1d930312c6f8d0ff6ee8c66bcabb6a32ee1abe3..3e6f896adc58a0e2fa9d3acbbf4be51ae51d9fb0 100644
--- a/Common/DataModel/vtkStructuredPoints.h
+++ b/Common/DataModel/vtkStructuredPoints.h
@@ -43,7 +43,7 @@ public:
 
 protected:
   vtkStructuredPoints();
-  ~vtkStructuredPoints() {}
+  ~vtkStructuredPoints() VTK_OVERRIDE {}
 private:
   vtkStructuredPoints(const vtkStructuredPoints&) VTK_DELETE_FUNCTION;
   void operator=(const vtkStructuredPoints&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkStructuredPointsCollection.h b/Common/DataModel/vtkStructuredPointsCollection.h
index 1201e174e205ea5d70933c6bf71ec8cc32778619..1dc819f8045f0bb2707c38b44793e2780e13c7de 100644
--- a/Common/DataModel/vtkStructuredPointsCollection.h
+++ b/Common/DataModel/vtkStructuredPointsCollection.h
@@ -55,7 +55,7 @@ public:
 
 protected:
   vtkStructuredPointsCollection() {}
-  ~vtkStructuredPointsCollection() {}
+  ~vtkStructuredPointsCollection() VTK_OVERRIDE {}
 
 
 
diff --git a/Common/DataModel/vtkSuperquadric.h b/Common/DataModel/vtkSuperquadric.h
index b14da2192c118dfb8af88dde28af2191b29182da..c8ff49d052c1f10aed25b75b5414be0d89d70f4c 100644
--- a/Common/DataModel/vtkSuperquadric.h
+++ b/Common/DataModel/vtkSuperquadric.h
@@ -102,7 +102,7 @@ public:
 
 protected:
   vtkSuperquadric();
-  ~vtkSuperquadric() {}
+  ~vtkSuperquadric() VTK_OVERRIDE {}
 
   int Toroidal;
   double Thickness;
diff --git a/Common/DataModel/vtkTable.h b/Common/DataModel/vtkTable.h
index ff958fd48fb704f8fc8d9617025e1e1b0141fabc..8cfeababdc186b9fcfee50a0497f9b883d13aab3 100644
--- a/Common/DataModel/vtkTable.h
+++ b/Common/DataModel/vtkTable.h
@@ -206,7 +206,7 @@ public:
 
 protected:
   vtkTable();
-  ~vtkTable();
+  ~vtkTable() VTK_OVERRIDE;
 
   // Description:
   // Holds the column data of the table.
diff --git a/Common/DataModel/vtkTetra.h b/Common/DataModel/vtkTetra.h
index 0af1e1c24952f9b6d2ee5217d05a6abaf1eb2d5a..42d725f930d77341d08363380fa7b9ccfff1f920 100644
--- a/Common/DataModel/vtkTetra.h
+++ b/Common/DataModel/vtkTetra.h
@@ -162,7 +162,7 @@ public:
 
 protected:
   vtkTetra();
-  ~vtkTetra();
+  ~vtkTetra() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkTriangle *Triangle;
diff --git a/Common/DataModel/vtkTree.h b/Common/DataModel/vtkTree.h
index 5215985de7e22d03c486de3ef82b857b8f38e209..3ed319c3343a0397f818790ca7c7a5a5a80b5d1a 100644
--- a/Common/DataModel/vtkTree.h
+++ b/Common/DataModel/vtkTree.h
@@ -111,7 +111,7 @@ public:
 
 protected:
   vtkTree();
-  ~vtkTree();
+  ~vtkTree() VTK_OVERRIDE;
 
   // Description:
   // Check the storage, and accept it if it is a valid
diff --git a/Common/DataModel/vtkTreeBFSIterator.h b/Common/DataModel/vtkTreeBFSIterator.h
index ddc03376e3a557da97b95ff1ef9ed45cf639bfb5..063860c8f1e0006849521aec30e59764cc67361a 100644
--- a/Common/DataModel/vtkTreeBFSIterator.h
+++ b/Common/DataModel/vtkTreeBFSIterator.h
@@ -43,7 +43,7 @@ public:
 
 protected:
   vtkTreeBFSIterator();
-  ~vtkTreeBFSIterator();
+  ~vtkTreeBFSIterator() VTK_OVERRIDE;
 
   void Initialize() VTK_OVERRIDE;
   vtkIdType NextInternal() VTK_OVERRIDE;
diff --git a/Common/DataModel/vtkTreeDFSIterator.h b/Common/DataModel/vtkTreeDFSIterator.h
index f06faa8194c30b8f6dee86ac4c0bd53389fbe81c..71e80f5538dfebae96b88d264bb97502321c7eea 100644
--- a/Common/DataModel/vtkTreeDFSIterator.h
+++ b/Common/DataModel/vtkTreeDFSIterator.h
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkTreeDFSIterator();
-  ~vtkTreeDFSIterator();
+  ~vtkTreeDFSIterator() VTK_OVERRIDE;
 
   void Initialize() VTK_OVERRIDE;
   vtkIdType NextInternal() VTK_OVERRIDE;
diff --git a/Common/DataModel/vtkTreeIterator.h b/Common/DataModel/vtkTreeIterator.h
index 25b4511c4fba5c05b1bb487e8feb7baa26a31c8f..ac910ffabb249f2b59e627f2411bf77b658da7a0 100644
--- a/Common/DataModel/vtkTreeIterator.h
+++ b/Common/DataModel/vtkTreeIterator.h
@@ -65,7 +65,7 @@ public:
 
 protected:
   vtkTreeIterator();
-  ~vtkTreeIterator();
+  ~vtkTreeIterator() VTK_OVERRIDE;
 
   virtual void Initialize() = 0;
   virtual vtkIdType NextInternal() = 0;
diff --git a/Common/DataModel/vtkTriQuadraticHexahedron.h b/Common/DataModel/vtkTriQuadraticHexahedron.h
index d3200a0df161c8ce8c9c538d57827c650f2063b5..075e3522bb2624dc1d90662b454ac72e1ea411bf 100644
--- a/Common/DataModel/vtkTriQuadraticHexahedron.h
+++ b/Common/DataModel/vtkTriQuadraticHexahedron.h
@@ -155,7 +155,7 @@ public:
 
 protected:
   vtkTriQuadraticHexahedron ();
-  ~vtkTriQuadraticHexahedron ();
+  ~vtkTriQuadraticHexahedron () VTK_OVERRIDE;
 
   vtkQuadraticEdge *Edge;
   vtkBiQuadraticQuad *Face;
diff --git a/Common/DataModel/vtkTriangle.h b/Common/DataModel/vtkTriangle.h
index e749aee3e51b561ce12647dd244de861dea566dd..29866d0b5b188b743630d91945d1055093e08a68 100644
--- a/Common/DataModel/vtkTriangle.h
+++ b/Common/DataModel/vtkTriangle.h
@@ -192,7 +192,7 @@ public:
 
 protected:
   vtkTriangle();
-  ~vtkTriangle();
+  ~vtkTriangle() VTK_OVERRIDE;
 
   vtkLine *Line;
 
diff --git a/Common/DataModel/vtkTriangleStrip.h b/Common/DataModel/vtkTriangleStrip.h
index 6129065e665036e933ae5d4cd59549096957aadc..dea76f401fb93267a483de2d3d51f2b190755905 100644
--- a/Common/DataModel/vtkTriangleStrip.h
+++ b/Common/DataModel/vtkTriangleStrip.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkTriangleStrip();
-  ~vtkTriangleStrip();
+  ~vtkTriangleStrip() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkTriangle *Triangle;
diff --git a/Common/DataModel/vtkUndirectedGraph.h b/Common/DataModel/vtkUndirectedGraph.h
index 87b54b418b182299c79d01d5f9cc4224e5d3630a..58fa42685164d6cb0da3c7b5c876a392cb0ad196 100644
--- a/Common/DataModel/vtkUndirectedGraph.h
+++ b/Common/DataModel/vtkUndirectedGraph.h
@@ -89,7 +89,7 @@ public:
 
 protected:
   vtkUndirectedGraph();
-  ~vtkUndirectedGraph();
+  ~vtkUndirectedGraph() VTK_OVERRIDE;
 
   // Description:
   // For iterators, returns the same edge list as GetOutEdges().
diff --git a/Common/DataModel/vtkUniformGrid.h b/Common/DataModel/vtkUniformGrid.h
index cf05bca7a4110a231e38a023774a1e5738c320c6..f23e1b0fd386add748a1ff743432cfcd8fff9df0 100644
--- a/Common/DataModel/vtkUniformGrid.h
+++ b/Common/DataModel/vtkUniformGrid.h
@@ -154,7 +154,7 @@ public:
 
 protected:
   vtkUniformGrid();
-  ~vtkUniformGrid();
+  ~vtkUniformGrid() VTK_OVERRIDE;
 
   // Description:
   // Returns the cell dimensions for this vtkUniformGrid instance.
diff --git a/Common/DataModel/vtkUniformGridAMR.h b/Common/DataModel/vtkUniformGridAMR.h
index 1439686b5d115e7cdaadb1f0aa12fc027fffe929..f8e3d4f30cd414028f38d66ec26a9bce3d241e32 100644
--- a/Common/DataModel/vtkUniformGridAMR.h
+++ b/Common/DataModel/vtkUniformGridAMR.h
@@ -121,7 +121,7 @@ public:
 
 protected:
   vtkUniformGridAMR();
-  virtual ~vtkUniformGridAMR();
+  ~vtkUniformGridAMR() VTK_OVERRIDE;
 
   // Description:
   // Get/Set the meta AMR meta data
diff --git a/Common/DataModel/vtkUniformGridAMRDataIterator.h b/Common/DataModel/vtkUniformGridAMRDataIterator.h
index 9a3d64bdb58fc38f12779558c4b7e3701ffd8429..7638e21cd7187901abcae32128cee1a68fa17be7 100644
--- a/Common/DataModel/vtkUniformGridAMRDataIterator.h
+++ b/Common/DataModel/vtkUniformGridAMRDataIterator.h
@@ -83,7 +83,7 @@ public:
 
 protected:
   vtkUniformGridAMRDataIterator();
-  ~vtkUniformGridAMRDataIterator();
+  ~vtkUniformGridAMRDataIterator() VTK_OVERRIDE;
   vtkSmartPointer<AMRIndexIterator> Iter;
 private:
   vtkUniformGridAMRDataIterator(const vtkUniformGridAMRDataIterator&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkUnstructuredGrid.h b/Common/DataModel/vtkUnstructuredGrid.h
index 6652970ef01056dc208c44f2f3b55d31c372a172..9015c2e75e8d69f8cffc0dbb7199fa910ab8b621 100644
--- a/Common/DataModel/vtkUnstructuredGrid.h
+++ b/Common/DataModel/vtkUnstructuredGrid.h
@@ -313,7 +313,7 @@ public:
 
 protected:
   vtkUnstructuredGrid();
-  ~vtkUnstructuredGrid();
+  ~vtkUnstructuredGrid() VTK_OVERRIDE;
 
   // used by GetCell method
   vtkVertex                         *Vertex;
diff --git a/Common/DataModel/vtkUnstructuredGridBase.h b/Common/DataModel/vtkUnstructuredGridBase.h
index f12533319683d1eb2d3a5750ef086a43ecbc22fa..c024c2fc156a043e4336b200786017417132883f 100644
--- a/Common/DataModel/vtkUnstructuredGridBase.h
+++ b/Common/DataModel/vtkUnstructuredGridBase.h
@@ -100,7 +100,7 @@ public:
 
 protected:
   vtkUnstructuredGridBase();
-  ~vtkUnstructuredGridBase();
+  ~vtkUnstructuredGridBase() VTK_OVERRIDE;
 
 private:
   vtkUnstructuredGridBase(const vtkUnstructuredGridBase&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkUnstructuredGridCellIterator.h b/Common/DataModel/vtkUnstructuredGridCellIterator.h
index 64f633226385a8e43d2fbe9b505b0b9bed67eeaa..9b0f326de907dbc3221f0be5025593bc0ed3120f 100644
--- a/Common/DataModel/vtkUnstructuredGridCellIterator.h
+++ b/Common/DataModel/vtkUnstructuredGridCellIterator.h
@@ -40,7 +40,7 @@ public:
 
 protected:
   vtkUnstructuredGridCellIterator();
-  ~vtkUnstructuredGridCellIterator();
+  ~vtkUnstructuredGridCellIterator() VTK_OVERRIDE;
 
   void ResetToFirstCell() VTK_OVERRIDE;
   void IncrementToNextCell() VTK_OVERRIDE;
diff --git a/Common/DataModel/vtkVertex.h b/Common/DataModel/vtkVertex.h
index 3938ccbc40c79b366c54445febe7901ee1a70b9d..554e6d1b7dab53ff3b630214a95e01cfc7e75d52 100644
--- a/Common/DataModel/vtkVertex.h
+++ b/Common/DataModel/vtkVertex.h
@@ -115,7 +115,7 @@ public:
 
 protected:
   vtkVertex();
-  ~vtkVertex() {}
+  ~vtkVertex() VTK_OVERRIDE {}
 
 private:
   vtkVertex(const vtkVertex&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkVertexListIterator.h b/Common/DataModel/vtkVertexListIterator.h
index 3495a82138ecff87dfe188cbb3b538671776d8ef..34e1701b4f08ce608af3600fba69a031ab88f96a 100644
--- a/Common/DataModel/vtkVertexListIterator.h
+++ b/Common/DataModel/vtkVertexListIterator.h
@@ -71,7 +71,7 @@ public:
 
 protected:
   vtkVertexListIterator();
-  ~vtkVertexListIterator();
+  ~vtkVertexListIterator() VTK_OVERRIDE;
 
   vtkGraph *Graph;
   vtkIdType  Current;
diff --git a/Common/DataModel/vtkVoxel.h b/Common/DataModel/vtkVoxel.h
index 8934cca092a03202c072ad41225de6d71c49c8a0..7f9d0ace7594ed85aac242007d738c04099f2b62 100644
--- a/Common/DataModel/vtkVoxel.h
+++ b/Common/DataModel/vtkVoxel.h
@@ -99,7 +99,7 @@ public:
 
 protected:
   vtkVoxel();
-  ~vtkVoxel();
+  ~vtkVoxel() VTK_OVERRIDE;
 
 private:
   vtkVoxel(const vtkVoxel&) VTK_DELETE_FUNCTION;
diff --git a/Common/DataModel/vtkWedge.h b/Common/DataModel/vtkWedge.h
index e95ffbd332e5b66567e7de1d4df88faa33761781..4c82fe8357305bcb89ec3af6f3f4058849de115e 100644
--- a/Common/DataModel/vtkWedge.h
+++ b/Common/DataModel/vtkWedge.h
@@ -106,7 +106,7 @@ public:
 
 protected:
   vtkWedge();
-  ~vtkWedge();
+  ~vtkWedge() VTK_OVERRIDE;
 
   vtkLine *Line;
   vtkTriangle *Triangle;
diff --git a/Common/DataModel/vtkXMLDataElement.h b/Common/DataModel/vtkXMLDataElement.h
index 8e9cf39f3b69ee35b75e98cc82cf2699867768c3..ecb47e5aaf5a8360858d004f9ee4935cff91bdcf 100644
--- a/Common/DataModel/vtkXMLDataElement.h
+++ b/Common/DataModel/vtkXMLDataElement.h
@@ -226,7 +226,7 @@ public:
 
 protected:
   vtkXMLDataElement();
-  ~vtkXMLDataElement();
+  ~vtkXMLDataElement() VTK_OVERRIDE;
 
   // The name of the element from the XML file.
   char* Name;
diff --git a/Common/ExecutionModel/vtkAlgorithm.h b/Common/ExecutionModel/vtkAlgorithm.h
index 8ecaa97149a2c7b4df7c3019608145b13ef3088d..e9e7db90c9830ceb0a2276831837c48e17981d5d 100644
--- a/Common/ExecutionModel/vtkAlgorithm.h
+++ b/Common/ExecutionModel/vtkAlgorithm.h
@@ -646,7 +646,7 @@ public:
 
 protected:
   vtkAlgorithm();
-  ~vtkAlgorithm();
+  ~vtkAlgorithm() VTK_OVERRIDE;
 
   // Keys used to indicate that input/output port information has been
   // filled.
diff --git a/Common/ExecutionModel/vtkAlgorithmOutput.h b/Common/ExecutionModel/vtkAlgorithmOutput.h
index ba63fe4f1a4941571254df0b827fba506040995f..113c14eb33c6dca95a0672e0351585632c78ffd2 100644
--- a/Common/ExecutionModel/vtkAlgorithmOutput.h
+++ b/Common/ExecutionModel/vtkAlgorithmOutput.h
@@ -45,7 +45,7 @@ public:
 
 protected:
   vtkAlgorithmOutput();
-  ~vtkAlgorithmOutput();
+  ~vtkAlgorithmOutput() VTK_OVERRIDE;
 
   int Index;
   vtkAlgorithm* Producer;
diff --git a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
index b2b69690a684503f4526e750f30dc1d973a4bb4d..a499f2ba3a54d40d495c65c57d76c3acb0d7427c 100644
--- a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
+++ b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
@@ -46,9 +46,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -64,7 +64,7 @@ public:
 
 protected:
   vtkAnnotationLayersAlgorithm();
-  ~vtkAnnotationLayersAlgorithm();
+  ~vtkAnnotationLayersAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -86,8 +86,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkAnnotationLayersAlgorithm(const vtkAnnotationLayersAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkArrayDataAlgorithm.h b/Common/ExecutionModel/vtkArrayDataAlgorithm.h
index 67a18854919873bd18e045286a32d20f65451682..4aba49dde439dde93fc2541f0cd9be0f63f522a7 100644
--- a/Common/ExecutionModel/vtkArrayDataAlgorithm.h
+++ b/Common/ExecutionModel/vtkArrayDataAlgorithm.h
@@ -56,9 +56,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -74,7 +74,7 @@ public:
 
 protected:
   vtkArrayDataAlgorithm();
-  ~vtkArrayDataAlgorithm();
+  ~vtkArrayDataAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -96,8 +96,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkArrayDataAlgorithm(const vtkArrayDataAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
index 00dabee948814d6c5207bf11981eb10f35fbfad9..010efea2b4c3abbb8e564545c58432803900c923 100644
--- a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
@@ -42,14 +42,14 @@ public:
 
 protected:
   vtkCachedStreamingDemandDrivenPipeline();
-  ~vtkCachedStreamingDemandDrivenPipeline();
+  ~vtkCachedStreamingDemandDrivenPipeline() VTK_OVERRIDE;
 
-  virtual int NeedToExecuteData(int outputPort,
+  int NeedToExecuteData(int outputPort,
                                 vtkInformationVector** inInfoVec,
-                                vtkInformationVector* outInfoVec);
-  virtual int ExecuteData(vtkInformation* request,
+                                vtkInformationVector* outInfoVec) VTK_OVERRIDE;
+  int ExecuteData(vtkInformation* request,
                           vtkInformationVector** inInfoVec,
-                          vtkInformationVector* outInfoVec);
+                          vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   int CacheSize;
 
diff --git a/Common/ExecutionModel/vtkCastToConcrete.h b/Common/ExecutionModel/vtkCastToConcrete.h
index ee7c57a490e17a7db9a77c706a7edede9f2cfe61..477496dd8f2fb3762ba6a2e2ce20243d34efbed7 100644
--- a/Common/ExecutionModel/vtkCastToConcrete.h
+++ b/Common/ExecutionModel/vtkCastToConcrete.h
@@ -51,10 +51,10 @@ public:
 
 protected:
   vtkCastToConcrete() {}
-  ~vtkCastToConcrete() {}
+  ~vtkCastToConcrete() VTK_OVERRIDE {}
 
-  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); //insures compatibility; satisfies abstract api in vtkFilter
-  virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
+  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE; //insures compatibility; satisfies abstract api in vtkFilter
+  int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
 private:
   vtkCastToConcrete(const vtkCastToConcrete&) VTK_DELETE_FUNCTION;
   void operator=(const vtkCastToConcrete&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkCompositeDataPipeline.h b/Common/ExecutionModel/vtkCompositeDataPipeline.h
index 36287b8868f5baa2b74c1424460afda799a68c84..a84b61d8c46b2de269dd9e1a57d73521645d7bf7 100644
--- a/Common/ExecutionModel/vtkCompositeDataPipeline.h
+++ b/Common/ExecutionModel/vtkCompositeDataPipeline.h
@@ -106,35 +106,35 @@ public:
 
 protected:
   vtkCompositeDataPipeline();
-  ~vtkCompositeDataPipeline();
+  ~vtkCompositeDataPipeline() VTK_OVERRIDE;
 
-  virtual int ForwardUpstream(vtkInformation* request);
+  int ForwardUpstream(vtkInformation* request) VTK_OVERRIDE;
   virtual int ForwardUpstream(int i, int j, vtkInformation* request);
 
   // Copy information for the given request.
-  virtual void CopyDefaultInformation(vtkInformation* request, int direction,
+  void CopyDefaultInformation(vtkInformation* request, int direction,
                                       vtkInformationVector** inInfoVec,
-                                      vtkInformationVector* outInfoVec);
+                                      vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   virtual void PushInformation(vtkInformation*);
   virtual void PopInformation (vtkInformation*);
 
-  virtual int ExecuteDataObject(vtkInformation* request,
+  int ExecuteDataObject(vtkInformation* request,
                                 vtkInformationVector** inInfo,
-                                vtkInformationVector* outInfo);
+                                vtkInformationVector* outInfo) VTK_OVERRIDE;
 
-  virtual int ExecuteData(vtkInformation* request,
+  int ExecuteData(vtkInformation* request,
                           vtkInformationVector** inInfoVec,
-                          vtkInformationVector* outInfoVec);
+                          vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
-  virtual void ExecuteDataStart(vtkInformation* request,
+  void ExecuteDataStart(vtkInformation* request,
                                 vtkInformationVector** inInfoVec,
-                                vtkInformationVector* outInfoVec);
+                                vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Override this check to account for update extent.
-  virtual int NeedToExecuteData(int outputPort,
+  int NeedToExecuteData(int outputPort,
                                 vtkInformationVector** inInfoVec,
-                                vtkInformationVector* outInfoVec);
+                                vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Check whether the data object in the pipeline information for an
   // output port exists and has a valid type.
@@ -172,8 +172,8 @@ protected:
   bool ShouldIterateOverInput(vtkInformationVector** inInfoVec,
                               int& compositePort);
 
-  virtual int InputTypeIsValid(int port, int index,
-                                vtkInformationVector **inInfoVec);
+  int InputTypeIsValid(int port, int index,
+                                vtkInformationVector **inInfoVec) VTK_OVERRIDE;
 
   vtkInformation* InformationCache;
 
@@ -184,7 +184,7 @@ protected:
   vtkInformation* DataRequest;
 
 
-  virtual void ResetPipelineInformation(int port, vtkInformation*);
+  void ResetPipelineInformation(int port, vtkInformation*) VTK_OVERRIDE;
 
   // Description:
   // Tries to create the best possible composite data output for the given input
@@ -198,9 +198,9 @@ protected:
     vtkCompositeDataSet* input, int compositePort);
 
   // Override this to handle UPDATE_COMPOSITE_INDICES().
-  virtual void MarkOutputsGenerated(vtkInformation* request,
+  void MarkOutputsGenerated(vtkInformation* request,
                                     vtkInformationVector** inInfoVec,
-                                    vtkInformationVector* outInfoVec);
+                                    vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   int NeedToExecuteBasedOnCompositeIndices(vtkInformation* outInfo);
 
diff --git a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
index 8c386196b8d1c5c27f77e3451bbd9633ffd6916a..5d7cb1fbecdbd48b3883220cc9735b0a4e042cf5 100644
--- a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
@@ -48,13 +48,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkCompositeDataSetAlgorithm();
-  ~vtkCompositeDataSetAlgorithm() {}
+  ~vtkCompositeDataSetAlgorithm() VTK_OVERRIDE {}
 
   // Description:
   // This is called by the superclass.
@@ -88,11 +88,11 @@ protected:
     };
 
   // Create a default executive.
-  virtual vtkExecutive* CreateDefaultExecutive();
+  vtkExecutive* CreateDefaultExecutive() VTK_OVERRIDE;
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkDataObjectAlgorithm.h b/Common/ExecutionModel/vtkDataObjectAlgorithm.h
index e2895e8139b44e4a50e92fddc6d5761f8030d7ef..27f8ea7783dd6a150d91192a208350b955361a54 100644
--- a/Common/ExecutionModel/vtkDataObjectAlgorithm.h
+++ b/Common/ExecutionModel/vtkDataObjectAlgorithm.h
@@ -53,9 +53,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -78,7 +78,7 @@ public:
 
 protected:
   vtkDataObjectAlgorithm();
-  ~vtkDataObjectAlgorithm();
+  ~vtkDataObjectAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -113,8 +113,8 @@ protected:
   }
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkDataObjectAlgorithm(const vtkDataObjectAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkDataSetAlgorithm.h b/Common/ExecutionModel/vtkDataSetAlgorithm.h
index 50fb39b77d1247a3f287b242e3a13e46c76c9d1e..338eb68d88088ba84555711598d018c42303b9a7 100644
--- a/Common/ExecutionModel/vtkDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkDataSetAlgorithm.h
@@ -104,13 +104,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkDataSetAlgorithm();
-  ~vtkDataSetAlgorithm() {}
+  ~vtkDataSetAlgorithm() VTK_OVERRIDE {}
 
   // Description:
   // This is called within ProcessRequest when a request asks for
@@ -158,8 +158,8 @@ protected:
 
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkDemandDrivenPipeline.h b/Common/ExecutionModel/vtkDemandDrivenPipeline.h
index aecf049b06a19c74f2cc8befec5b8666631c5ca3..9104accee2dad15df2af3152eafeac58c58cd322 100644
--- a/Common/ExecutionModel/vtkDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkDemandDrivenPipeline.h
@@ -52,24 +52,24 @@ public:
   // Description:
   // Generalized interface for asking the executive to fulfill update
   // requests.
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inInfo,
-                             vtkInformationVector* outInfo);
+                             vtkInformationVector* outInfo) VTK_OVERRIDE;
 
   // Description:
   // Implement the pipeline modified time request.
-  virtual int
+  int
   ComputePipelineMTime(vtkInformation* request,
                        vtkInformationVector** inInfoVec,
                        vtkInformationVector* outInfoVec,
                        int requestFromOutputPort,
-                       vtkMTimeType* mtime);
+                       vtkMTimeType* mtime) VTK_OVERRIDE;
 
   // Description:
   // Bring the algorithm's outputs up-to-date.  Returns 1 for success
   // and 0 for failure.
-  virtual int Update();
-  virtual int Update(int port);
+  int Update() VTK_OVERRIDE;
+  int Update(int port) VTK_OVERRIDE;
 
   // Description:
   // Get the PipelineMTime for this exective.
@@ -92,11 +92,11 @@ public:
   // Bring the output data object's existence up to date.  This does
   // not actually produce data, but does create the data object that
   // will store data produced during the UpdateData step.
-  virtual int UpdateDataObject();
+  int UpdateDataObject() VTK_OVERRIDE;
 
   // Description:
   // Bring the output information up to date.
-  virtual int UpdateInformation();
+  int UpdateInformation() VTK_OVERRIDE;
 
   // Description:
   // Bring the output data up to date.  This should be called only
@@ -146,7 +146,7 @@ public:
 
 protected:
   vtkDemandDrivenPipeline();
-  ~vtkDemandDrivenPipeline();
+  ~vtkDemandDrivenPipeline() VTK_OVERRIDE;
 
   // Helper methods to send requests to the algorithm.
   virtual int ExecuteDataObject(vtkInformation* request,
@@ -161,7 +161,7 @@ protected:
 
 
   // Reset the pipeline update values in the given output information object.
-  virtual void ResetPipelineInformation(int, vtkInformation*);
+  void ResetPipelineInformation(int, vtkInformation*) VTK_OVERRIDE;
 
   // Check whether the data object in the pipeline information for an
   // output port exists and has a valid type.
diff --git a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
index 9f307c3e884e3f826c0b9e2daf4e3326e14ac6d9..9c618df41485d1ccf869bc90958bc31ee54b21a7 100644
--- a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
@@ -55,9 +55,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -73,7 +73,7 @@ public:
 
 protected:
   vtkDirectedGraphAlgorithm();
-  ~vtkDirectedGraphAlgorithm();
+  ~vtkDirectedGraphAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -95,8 +95,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkDirectedGraphAlgorithm(const vtkDirectedGraphAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkEnsembleSource.h b/Common/ExecutionModel/vtkEnsembleSource.h
index 4047283fc12bc450276dbf9069bf1648e24be1fc..b14bac0712cc2fe125cc8c14777281294f138596 100644
--- a/Common/ExecutionModel/vtkEnsembleSource.h
+++ b/Common/ExecutionModel/vtkEnsembleSource.h
@@ -78,16 +78,16 @@ public:
 
 protected:
   vtkEnsembleSource();
-  ~vtkEnsembleSource();
+  ~vtkEnsembleSource() VTK_OVERRIDE;
 
   static vtkInformationIntegerKey* DATA_MEMBER();
 
   friend class vtkInformationEnsembleMemberRequestKey;
 
-  virtual int ProcessRequest(vtkInformation *request,
+  int ProcessRequest(vtkInformation *request,
                              vtkInformationVector **inputVector,
-                             vtkInformationVector *outputVector);
-  virtual int FillOutputPortInformation(int, vtkInformation*);
+                             vtkInformationVector *outputVector) VTK_OVERRIDE;
+  int FillOutputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
 
   vtkAlgorithm* GetCurrentReader(vtkInformation*);
 
diff --git a/Common/ExecutionModel/vtkExecutive.h b/Common/ExecutionModel/vtkExecutive.h
index 3049d61864b6b0a1e76d2fe242e91de9411e8ed6..d7039046e91f969f93751f62564a3f23c7b14bb1 100644
--- a/Common/ExecutionModel/vtkExecutive.h
+++ b/Common/ExecutionModel/vtkExecutive.h
@@ -188,7 +188,7 @@ public:
 
 protected:
   vtkExecutive();
-  ~vtkExecutive();
+  ~vtkExecutive() VTK_OVERRIDE;
 
   // Helper methods for subclasses.
   int InputPortIndexInRange(int port, const char* action);
diff --git a/Common/ExecutionModel/vtkExtentRCBPartitioner.h b/Common/ExecutionModel/vtkExtentRCBPartitioner.h
index e888512b700f39832f128a297ccc29f4d780e6ff..b2a904e5c666e92d8959b0d4b7bd465abc18dcae 100644
--- a/Common/ExecutionModel/vtkExtentRCBPartitioner.h
+++ b/Common/ExecutionModel/vtkExtentRCBPartitioner.h
@@ -32,7 +32,7 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentRCBPartitioner : public vtkObject
   public:
     static vtkExtentRCBPartitioner *New();
     vtkTypeMacro(vtkExtentRCBPartitioner,vtkObject);
-    void PrintSelf(ostream &oss, vtkIndent indent );
+    void PrintSelf(ostream &oss, vtkIndent indent ) VTK_OVERRIDE;
 
     // Description:
     // Set/Get the number of requested partitions
@@ -87,7 +87,7 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentRCBPartitioner : public vtkObject
 
   protected:
     vtkExtentRCBPartitioner();
-   ~vtkExtentRCBPartitioner();
+   ~vtkExtentRCBPartitioner() VTK_OVERRIDE;
 
     // Description:
     // Resets the partitioner to the initial state, all previous partition
diff --git a/Common/ExecutionModel/vtkExtentSplitter.h b/Common/ExecutionModel/vtkExtentSplitter.h
index 5f77de9833a596edc7680c2521fbcb7e3d7dee19..8b365c1d6b550126b1eac5d3aa29e584a4977e98 100644
--- a/Common/ExecutionModel/vtkExtentSplitter.h
+++ b/Common/ExecutionModel/vtkExtentSplitter.h
@@ -93,7 +93,7 @@ public:
 
 protected:
   vtkExtentSplitter();
-  ~vtkExtentSplitter();
+  ~vtkExtentSplitter() VTK_OVERRIDE;
 
   // Internal utility methods.
   void SplitExtent(int* extent, int* subextent);
diff --git a/Common/ExecutionModel/vtkExtentTranslator.h b/Common/ExecutionModel/vtkExtentTranslator.h
index c96bcc10645229a5fa54e3206b339039d9a44251..56d09463ae3dcb2998db8acae56058e20594f39d 100644
--- a/Common/ExecutionModel/vtkExtentTranslator.h
+++ b/Common/ExecutionModel/vtkExtentTranslator.h
@@ -107,7 +107,7 @@ public:
 
 protected:
   vtkExtentTranslator();
-  ~vtkExtentTranslator();
+  ~vtkExtentTranslator() VTK_OVERRIDE;
 
   static vtkInformationIntegerKey* DATA_SPLIT_MODE();
 
diff --git a/Common/ExecutionModel/vtkGraphAlgorithm.h b/Common/ExecutionModel/vtkGraphAlgorithm.h
index 598c8422b87117d60cd14e82e43a5091bb37485c..3d8aef09500f10fbaa3c0d82f41f04479d507080 100644
--- a/Common/ExecutionModel/vtkGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkGraphAlgorithm.h
@@ -54,9 +54,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -72,7 +72,7 @@ public:
 
 protected:
   vtkGraphAlgorithm();
-  ~vtkGraphAlgorithm();
+  ~vtkGraphAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -99,8 +99,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkGraphAlgorithm(const vtkGraphAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
index 7e84cda9bce7ba23f2f561640a2ec51d5baf6df2..a4d81bc5329b54a38fd2cb10e48f51ebdcd27a9d 100644
--- a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
@@ -47,13 +47,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkHierarchicalBoxDataSetAlgorithm();
-  ~vtkHierarchicalBoxDataSetAlgorithm();
+  ~vtkHierarchicalBoxDataSetAlgorithm() VTK_OVERRIDE;
 
   // Description:
   // This is called by the superclass.
@@ -87,11 +87,11 @@ protected:
     };
 
   // Create a default executive.
-  virtual vtkExecutive* CreateDefaultExecutive();
+  vtkExecutive* CreateDefaultExecutive() VTK_OVERRIDE;
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkHyperOctreeAlgorithm.h b/Common/ExecutionModel/vtkHyperOctreeAlgorithm.h
index ac7fcc91429f219792b29b1b2252cef639bb373a..06fa36fc776ad2211f3dbcd7dcd11f312f5607a0 100644
--- a/Common/ExecutionModel/vtkHyperOctreeAlgorithm.h
+++ b/Common/ExecutionModel/vtkHyperOctreeAlgorithm.h
@@ -49,9 +49,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -75,7 +75,7 @@ public:
 
 protected:
   vtkHyperOctreeAlgorithm();
-  ~vtkHyperOctreeAlgorithm();
+  ~vtkHyperOctreeAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -97,8 +97,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkHyperOctreeAlgorithm(const vtkHyperOctreeAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
index f880d667244d42ef1309231597f5d953a2ed0f60..a53946fdf33fab8cdfd7d8e0036ba1cc1827053e 100644
--- a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
@@ -54,9 +54,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -80,7 +80,7 @@ public:
 
 protected:
   vtkHyperTreeGridAlgorithm();
-  ~vtkHyperTreeGridAlgorithm();
+  ~vtkHyperTreeGridAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -102,8 +102,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkHyperTreeGridAlgorithm(const vtkHyperTreeGridAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkImageAlgorithm.h b/Common/ExecutionModel/vtkImageAlgorithm.h
index 60fc4226827521648d2551b24bdf440a35d66758..932b1acf58dc974f67a62ec98d42f0f68a3e4c9d 100644
--- a/Common/ExecutionModel/vtkImageAlgorithm.h
+++ b/Common/ExecutionModel/vtkImageAlgorithm.h
@@ -47,9 +47,9 @@ public:
   // Process a request from the executive.  For vtkImageAlgorithm, the
   // request will be delegated to one of the following methods: RequestData,
   // RequestInformation, or RequestUpdateExtent.
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Assign a data object as input. Note that this method does not
@@ -75,7 +75,7 @@ public:
 
 protected:
   vtkImageAlgorithm();
-  ~vtkImageAlgorithm();
+  ~vtkImageAlgorithm() VTK_OVERRIDE;
 
   // Description:
   // Subclasses can reimplement this method to collect information
@@ -145,8 +145,8 @@ protected:
   // These method should be reimplemented by subclasses that have
   // more than a single input or single output.
   // See vtkAlgorithm for more information.
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkImageAlgorithm(const vtkImageAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkImageInPlaceFilter.h b/Common/ExecutionModel/vtkImageInPlaceFilter.h
index 6ba596a6080d2be6ab8e929bc3aaaaa70d5c1587..3d8214f03c5f0171eb9cce3c92c5de1fb0087edf 100644
--- a/Common/ExecutionModel/vtkImageInPlaceFilter.h
+++ b/Common/ExecutionModel/vtkImageInPlaceFilter.h
@@ -34,11 +34,11 @@ public:
 
 protected:
   vtkImageInPlaceFilter();
-  ~vtkImageInPlaceFilter();
+  ~vtkImageInPlaceFilter() VTK_OVERRIDE;
 
-  virtual int RequestData(vtkInformation *request,
+  int RequestData(vtkInformation *request,
                           vtkInformationVector** inputVector,
-                          vtkInformationVector* outputVector);
+                          vtkInformationVector* outputVector) VTK_OVERRIDE;
 
   void CopyData(vtkImageData *in, vtkImageData *out, int* outExt);
 
diff --git a/Common/ExecutionModel/vtkImageToStructuredGrid.h b/Common/ExecutionModel/vtkImageToStructuredGrid.h
index 6a04b1e62624c2c2aa5cf8976415aa5e29556f26..b4eb06595c016ec6faabd3ad96dbda7682a7df3c 100644
--- a/Common/ExecutionModel/vtkImageToStructuredGrid.h
+++ b/Common/ExecutionModel/vtkImageToStructuredGrid.h
@@ -36,24 +36,24 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageToStructuredGrid:
   public:
     static vtkImageToStructuredGrid* New();
     vtkTypeMacro(vtkImageToStructuredGrid,vtkStructuredGridAlgorithm);
-    void PrintSelf(ostream &oss, vtkIndent indent );
+    void PrintSelf(ostream &oss, vtkIndent indent ) VTK_OVERRIDE;
 
   protected:
     vtkImageToStructuredGrid();
-    virtual ~vtkImageToStructuredGrid();
+    ~vtkImageToStructuredGrid() VTK_OVERRIDE;
 
-    virtual int RequestData(
+    int RequestData(
         vtkInformation* request,
         vtkInformationVector** inputVector,
-        vtkInformationVector* outputVector );
+        vtkInformationVector* outputVector ) VTK_OVERRIDE;
 
     // Description:
     // Helper function to copy point/cell data from image to grid
     void CopyPointData( vtkImageData*, vtkStructuredGrid* );
     void CopyCellData( vtkImageData*, vtkStructuredGrid*  );
 
-    virtual int FillInputPortInformation(int, vtkInformation* info);
-    virtual int FillOutputPortInformation(int, vtkInformation* info );
+    int FillInputPortInformation(int, vtkInformation* info) VTK_OVERRIDE;
+    int FillOutputPortInformation(int, vtkInformation* info ) VTK_OVERRIDE;
 
   private:
     vtkImageToStructuredGrid(
diff --git a/Common/ExecutionModel/vtkImageToStructuredPoints.h b/Common/ExecutionModel/vtkImageToStructuredPoints.h
index 16fb21a26e3a177da599d4ed9c405b2015428ef2..f9f62b1593ab8504016d2d8662a3cf259622ef45 100644
--- a/Common/ExecutionModel/vtkImageToStructuredPoints.h
+++ b/Common/ExecutionModel/vtkImageToStructuredPoints.h
@@ -48,17 +48,17 @@ public:
 
 protected:
   vtkImageToStructuredPoints();
-  ~vtkImageToStructuredPoints();
+  ~vtkImageToStructuredPoints() VTK_OVERRIDE;
 
   // to translate the wholeExtent to have min 0 ( I do not like this hack).
   int Translate[3];
 
-  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
-  virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *);
-  virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
+  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
+  int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
+  int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
 
-  virtual int FillOutputPortInformation(int, vtkInformation*);
-  virtual int FillInputPortInformation(int, vtkInformation*);
+  int FillOutputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
+  int FillInputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
 
 private:
   vtkImageToStructuredPoints(const vtkImageToStructuredPoints&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
index 1323df39f37bd921d82dd0ecab9a624b8d3a074e..9b47731859e5d1826b5fa1c016bdb8c4e03f547f 100644
--- a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
+++ b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
@@ -32,7 +32,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationDataObjectMetaDataKey(const char* name, const char* location);
-  ~vtkInformationDataObjectMetaDataKey();
+  ~vtkInformationDataObjectMetaDataKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationDataObjectMetaDataKey, given a
@@ -47,9 +47,9 @@ public:
   // Simply shallow copies the key from fromInfo to toInfo if request
   // has the REQUEST_INFORMATION() key.
   // This is used by the pipeline to propagate this key downstream.
-  virtual void CopyDefaultInformation(vtkInformation* request,
+  void CopyDefaultInformation(vtkInformation* request,
                                       vtkInformation* fromInfo,
-                                      vtkInformation* toInfo);
+                                      vtkInformation* toInfo) VTK_OVERRIDE;
 
 private:
   vtkInformationDataObjectMetaDataKey(const vtkInformationDataObjectMetaDataKey&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortKey.h b/Common/ExecutionModel/vtkInformationExecutivePortKey.h
index 204dcae54e76eaf7c0a8cea20d849780d2b8fdf5..dd85b7eff94b6b263ae1d29c315149a6974adde1 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortKey.h
+++ b/Common/ExecutionModel/vtkInformationExecutivePortKey.h
@@ -35,7 +35,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationExecutivePortKey(const char* name, const char* location);
-  ~vtkInformationExecutivePortKey();
+  ~vtkInformationExecutivePortKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationExecutivePortKey, given a
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
index bcb920949e7fa4c94b3d826a1e1c26ca36e1166f..6b8034d9321bdc2891559ff9e189c2ebdbf8a3c3 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
+++ b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
@@ -35,7 +35,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationExecutivePortVectorKey(const char* name, const char* location);
-  ~vtkInformationExecutivePortVectorKey();
+  ~vtkInformationExecutivePortVectorKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationExecutivePortVectorKey,
diff --git a/Common/ExecutionModel/vtkInformationIntegerRequestKey.h b/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
index 800aab96512ba071f3353faf7af6bd8de0e9dcf0..c4c016048960aa141d99a92648f512b19451c1cb 100644
--- a/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
+++ b/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
@@ -42,7 +42,7 @@ public:
   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
 
   vtkInformationIntegerRequestKey(const char* name, const char* location);
-  ~vtkInformationIntegerRequestKey();
+  ~vtkInformationIntegerRequestKey() VTK_OVERRIDE;
 
   // Description:
   // This method simply returns a new vtkInformationIntegerRequestKey,
@@ -57,22 +57,22 @@ public:
   // Returns true if a value of type DataKey does not exist in dobjInfo
   // or if it is different that the value stored in pipelineInfo using
   // this key.
-  virtual bool NeedToExecute(vtkInformation* pipelineInfo,
-                             vtkInformation* dobjInfo);
+  bool NeedToExecute(vtkInformation* pipelineInfo,
+                             vtkInformation* dobjInfo) VTK_OVERRIDE;
 
   // Description:
   // Copies the value stored in pipelineInfo using this key into
   // dobjInfo.
-  virtual void StoreMetaData(vtkInformation* request,
+  void StoreMetaData(vtkInformation* request,
                              vtkInformation* pipelineInfo,
-                             vtkInformation* dobjInfo);
+                             vtkInformation* dobjInfo) VTK_OVERRIDE;
 
   // Description:
   // Copies the value stored in fromInfo using this key into toInfo
   // if request has the REQUEST_UPDATE_EXTENT key.
-  virtual void CopyDefaultInformation(vtkInformation* request,
+  void CopyDefaultInformation(vtkInformation* request,
                                       vtkInformation* fromInfo,
-                                      vtkInformation* toInfo);
+                                      vtkInformation* toInfo) VTK_OVERRIDE;
 
 protected:
   vtkInformationIntegerKey* DataKey;
diff --git a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
index 18a657d152615f9630564388d122ac04682a775c..26693e2a8e1ba3abf80079a890c3b595441622e5 100644
--- a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
@@ -48,13 +48,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkMultiBlockDataSetAlgorithm();
-  ~vtkMultiBlockDataSetAlgorithm() {}
+  ~vtkMultiBlockDataSetAlgorithm() VTK_OVERRIDE {}
 
   // Description:
   // This is called by the superclass.
@@ -88,11 +88,11 @@ protected:
     };
 
   // Create a default executive.
-  virtual vtkExecutive* CreateDefaultExecutive();
+  vtkExecutive* CreateDefaultExecutive() VTK_OVERRIDE;
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
index a635bd6122cb4b4bfe5581e1269818d6a6f9749d..f695c41592e36f5099520fa20e8f9031e7535c92 100644
--- a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
+++ b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
@@ -45,7 +45,7 @@ public:
 protected:
   vtkMultiTimeStepAlgorithm();
 
-  ~vtkMultiTimeStepAlgorithm()
+  ~vtkMultiTimeStepAlgorithm() VTK_OVERRIDE
   {
   };
 
@@ -86,7 +86,7 @@ protected:
     return 1;
   }
 
-  int ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
+  int ProcessRequest(vtkInformation*, vtkInformationVector**, vtkInformationVector*) VTK_OVERRIDE;
 
   bool CacheData;
   unsigned int NumberOfCacheEntries;
diff --git a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
index a592ef2add2ecbda1d74459d4452a13d68db4780..d123c041991092faafc3f3496bb00e2f00ce58e8 100644
--- a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
@@ -41,12 +41,12 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkNonOverlappingAMRAlgorithm :
 
   protected:
     vtkNonOverlappingAMRAlgorithm();
-    virtual ~vtkNonOverlappingAMRAlgorithm();
+    ~vtkNonOverlappingAMRAlgorithm() VTK_OVERRIDE;
 
     // Description:
     // See algorithm for more info.
-    virtual int FillOutputPortInformation(int port, vtkInformation* info);
-    virtual int FillInputPortInformation(int port, vtkInformation* info);
+    int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+    int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   private:
     vtkNonOverlappingAMRAlgorithm(const vtkNonOverlappingAMRAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
index 8531f0e9c364afaac1ab8ffa8d1a5fd986cf891c..707588537f04f3cecec518b588e67c921f9e5a77 100644
--- a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
@@ -42,12 +42,12 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkOverlappingAMRAlgorithm :
 
   protected:
     vtkOverlappingAMRAlgorithm();
-    virtual ~vtkOverlappingAMRAlgorithm();
+    ~vtkOverlappingAMRAlgorithm() VTK_OVERRIDE;
 
     // Description:
     // See algorithm for more info.
-    virtual int FillOutputPortInformation(int port, vtkInformation* info);
-    virtual int FillInputPortInformation(int port, vtkInformation* info);
+    int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+    int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   private:
     vtkOverlappingAMRAlgorithm(const vtkOverlappingAMRAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
index cdc2929cd222aa438d31304553c41e5a8f88dd17..a066a030131959f5ab55824cec51b8829aeb529f 100644
--- a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
+++ b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
@@ -111,13 +111,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkPassInputTypeAlgorithm();
-  ~vtkPassInputTypeAlgorithm() {}
+  ~vtkPassInputTypeAlgorithm() VTK_OVERRIDE {}
 
   // Description:
   // This is called within ProcessRequest when a request asks for
@@ -175,8 +175,8 @@ protected:
 
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
   vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
index ae802b1ce6ec9c44ec23f46189773c9ec0d0062e..653bdd01eac8930e3be41b474a28c753c9c5582e 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
@@ -52,9 +52,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -77,7 +77,7 @@ public:
 
 protected:
   vtkPiecewiseFunctionAlgorithm();
-  ~vtkPiecewiseFunctionAlgorithm();
+  ~vtkPiecewiseFunctionAlgorithm() VTK_OVERRIDE;
 
   // Description:
   // This is called by the superclass.
@@ -87,8 +87,8 @@ protected:
                           vtkInformationVector* outputVector);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkPiecewiseFunctionAlgorithm(const vtkPiecewiseFunctionAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
index 268a15c4f9278f116d45e5f6ae41321dbfdf6e03..6d3710e3f2bf332c7bf5a9b61da26d02688360a5 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
@@ -44,10 +44,10 @@ public:
 
 protected:
   vtkPiecewiseFunctionShiftScale();
-  ~vtkPiecewiseFunctionShiftScale();
+  ~vtkPiecewiseFunctionShiftScale() VTK_OVERRIDE;
 
-  virtual int RequestData(vtkInformation *, vtkInformationVector **,
-                          vtkInformationVector *);
+  int RequestData(vtkInformation *, vtkInformationVector **,
+                          vtkInformationVector *) VTK_OVERRIDE;
 
   double PositionShift;
   double PositionScale;
diff --git a/Common/ExecutionModel/vtkPointSetAlgorithm.h b/Common/ExecutionModel/vtkPointSetAlgorithm.h
index 951ae40cd551df07a034b59fc115d8178bd08993..2690e397a68a873d41b1a1bfecf2fe17773e621e 100644
--- a/Common/ExecutionModel/vtkPointSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkPointSetAlgorithm.h
@@ -86,13 +86,13 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inputVector,
-                             vtkInformationVector* outputVector);
+                             vtkInformationVector* outputVector) VTK_OVERRIDE;
 
 protected:
   vtkPointSetAlgorithm();
-  ~vtkPointSetAlgorithm() {}
+  ~vtkPointSetAlgorithm() VTK_OVERRIDE {}
 
   // Description:
   // This is called by the superclass.
@@ -126,8 +126,8 @@ protected:
     };
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkPointSetAlgorithm(const vtkPointSetAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkPolyDataAlgorithm.h b/Common/ExecutionModel/vtkPolyDataAlgorithm.h
index 1572fa684309a5e2e4596101856853e2255da502..b685941f6257337e03c1cde250b97cd7875effb5 100644
--- a/Common/ExecutionModel/vtkPolyDataAlgorithm.h
+++ b/Common/ExecutionModel/vtkPolyDataAlgorithm.h
@@ -50,9 +50,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -76,7 +76,7 @@ public:
 
 protected:
   vtkPolyDataAlgorithm();
-  ~vtkPolyDataAlgorithm();
+  ~vtkPolyDataAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -98,8 +98,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkPolyDataAlgorithm(const vtkPolyDataAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkProgressObserver.h b/Common/ExecutionModel/vtkProgressObserver.h
index da1c7838232902b31458830e6eda717c70d16e0b..6fb5924a11f15f1a161a9a112fce8ed13f822ede 100644
--- a/Common/ExecutionModel/vtkProgressObserver.h
+++ b/Common/ExecutionModel/vtkProgressObserver.h
@@ -48,7 +48,7 @@ public:
 
 protected:
   vtkProgressObserver();
-  ~vtkProgressObserver();
+  ~vtkProgressObserver() VTK_OVERRIDE;
 
   double Progress;
 
diff --git a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
index 4dfca8e1b0bdc63b37ad43389218993285934792..e2227ad32bcd8f316e18cad2a6b5fea54cab4205 100644
--- a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
@@ -52,9 +52,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -78,7 +78,7 @@ public:
 
 protected:
   vtkRectilinearGridAlgorithm();
-  ~vtkRectilinearGridAlgorithm();
+  ~vtkRectilinearGridAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -103,8 +103,8 @@ protected:
     };
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkRectilinearGridAlgorithm(const vtkRectilinearGridAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkSMPProgressObserver.h b/Common/ExecutionModel/vtkSMPProgressObserver.h
index 391c564c4c6ba8a7e251866ad0627715aac44ca7..a54cd8cfd09bc83496224786ab02adbf4844d6d9 100644
--- a/Common/ExecutionModel/vtkSMPProgressObserver.h
+++ b/Common/ExecutionModel/vtkSMPProgressObserver.h
@@ -38,7 +38,7 @@ public:
   // Description:
   // Passes the progress event to a thread local ProgressObserver
   // instance.
-  void UpdateProgress(double amount);
+  void UpdateProgress(double amount) VTK_OVERRIDE;
 
   // Description:
   // Returns the progress observer local to the thread it was
@@ -50,7 +50,7 @@ public:
 
 protected:
   vtkSMPProgressObserver();
-  ~vtkSMPProgressObserver();
+  ~vtkSMPProgressObserver() VTK_OVERRIDE;
 
   vtkSMPThreadLocalObject<vtkProgressObserver> Observers;
 
diff --git a/Common/ExecutionModel/vtkScalarTree.h b/Common/ExecutionModel/vtkScalarTree.h
index d9661b9fa5b9073b1a185df7e0f681f5930f13af..f2989aa4514f1cec6d2fc963e1b10da3b509d3a3 100644
--- a/Common/ExecutionModel/vtkScalarTree.h
+++ b/Common/ExecutionModel/vtkScalarTree.h
@@ -123,7 +123,7 @@ public:
 
 protected:
   vtkScalarTree();
-  ~vtkScalarTree();
+  ~vtkScalarTree() VTK_OVERRIDE;
 
   vtkDataSet   *DataSet;    //the dataset over which the scalar tree is built
   vtkDataArray *Scalars;    //the scalars of the DataSet
diff --git a/Common/ExecutionModel/vtkSelectionAlgorithm.h b/Common/ExecutionModel/vtkSelectionAlgorithm.h
index f8b88f432af8520c4ec947de9c87df26765c4252..a1a5b5a61ff7e008bdf6d0d2cda0baf9bdcfa0e8 100644
--- a/Common/ExecutionModel/vtkSelectionAlgorithm.h
+++ b/Common/ExecutionModel/vtkSelectionAlgorithm.h
@@ -49,9 +49,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -67,7 +67,7 @@ public:
 
 protected:
   vtkSelectionAlgorithm();
-  ~vtkSelectionAlgorithm();
+  ~vtkSelectionAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -89,8 +89,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkSelectionAlgorithm(const vtkSelectionAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkSimpleImageToImageFilter.h b/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
index 9838b9317a6434861051027f960277a678de096c..5844b324026ffb3932cebd7df7ab323df775f544 100644
--- a/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
+++ b/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
@@ -48,17 +48,17 @@ public:
 
 protected:
   vtkSimpleImageToImageFilter();
-  ~vtkSimpleImageToImageFilter();
+  ~vtkSimpleImageToImageFilter() VTK_OVERRIDE;
 
   // These are called by the superclass.
-  virtual int RequestUpdateExtent (vtkInformation *,
+  int RequestUpdateExtent (vtkInformation *,
                                    vtkInformationVector **,
-                                   vtkInformationVector *);
+                                   vtkInformationVector *) VTK_OVERRIDE;
 
   // You don't have to touch this unless you have a good reason.
-  virtual int RequestData(vtkInformation *,
+  int RequestData(vtkInformation *,
                           vtkInformationVector **,
-                          vtkInformationVector *);
+                          vtkInformationVector *) VTK_OVERRIDE;
 
   // In the simplest case, this is the only method you need to define.
   virtual void SimpleExecute(vtkImageData* input, vtkImageData* output) = 0;
diff --git a/Common/ExecutionModel/vtkSimpleScalarTree.h b/Common/ExecutionModel/vtkSimpleScalarTree.h
index cbf312439669fc0d2007b6d4dae05491eb8bf5b7..03047b8546bbcc4df24e5b2a20d32c61b5ed2ec3 100644
--- a/Common/ExecutionModel/vtkSimpleScalarTree.h
+++ b/Common/ExecutionModel/vtkSimpleScalarTree.h
@@ -83,24 +83,24 @@ public:
   // Description:
   // Construct the scalar tree from the dataset provided. Checks build times
   // and modified time from input and reconstructs the tree if necessary.
-  virtual void BuildTree();
+  void BuildTree() VTK_OVERRIDE;
 
   // Description:
   // Initialize locator. Frees memory and resets object as appropriate.
-  virtual void Initialize();
+  void Initialize() VTK_OVERRIDE;
 
   // Description:
   // Begin to traverse the cells based on a scalar value. Returned cells
   // will likely have scalar values that span the scalar value specified.
-  virtual void InitTraversal(double scalarValue);
+  void InitTraversal(double scalarValue) VTK_OVERRIDE;
 
   // Description:
   // Return the next cell that may contain scalar value specified to
   // initialize traversal. The value NULL is returned if the list is
   // exhausted. Make sure that InitTraversal() has been invoked first or
   // you'll get erratic behavior.
-  virtual vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds,
-                               vtkDataArray *cellScalars);
+  vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds,
+                               vtkDataArray *cellScalars) VTK_OVERRIDE;
 
   // The following methods supports parallel (threaded)
   // applications. Basically batches of cells (which represent a
@@ -114,18 +114,18 @@ public:
   // of the isocontour value. Note that the cells found in
   // [0...(NumberOfCellBatches-1)] will contain all the cells
   // potentially containing the isocontour.
-  virtual vtkIdType GetNumberOfCellBatches();
+  vtkIdType GetNumberOfCellBatches() VTK_OVERRIDE;
 
   // Description:
   // Return the array of cell ids in the specified batch. The method
   // also returns the number of cell ids in the array. Make sure to
   // call InitTraversal() beforehand.
-  virtual const vtkIdType* GetCellBatch(vtkIdType batchNum,
-                                        vtkIdType& numCells);
+  const vtkIdType* GetCellBatch(vtkIdType batchNum,
+                                        vtkIdType& numCells) VTK_OVERRIDE;
 
 protected:
   vtkSimpleScalarTree();
-  ~vtkSimpleScalarTree();
+  ~vtkSimpleScalarTree() VTK_OVERRIDE;
 
   int MaxLevel;
   int Level;
diff --git a/Common/ExecutionModel/vtkSpanSpace.h b/Common/ExecutionModel/vtkSpanSpace.h
index c6a281fae6dcbd8fcc0a6d2e2194271168eca948..3d72da0e22c3e82194c4df44894a7f84884af030 100644
--- a/Common/ExecutionModel/vtkSpanSpace.h
+++ b/Common/ExecutionModel/vtkSpanSpace.h
@@ -73,27 +73,27 @@ public:
 
   // Description:
   // Initialize locator. Frees memory and resets object as appropriate.
-  virtual void Initialize();
+  void Initialize() VTK_OVERRIDE;
 
   // Description:
   // Construct the scalar tree from the dataset provided. Checks build times
   // and modified time from input and reconstructs the tree if necessary.
-  virtual void BuildTree();
+  void BuildTree() VTK_OVERRIDE;
 
   // Description:
   // Begin to traverse the cells based on a scalar value. Returned cells
   // will have scalar values that span the scalar value specified. Note this
   // method must be called prior to parallel or serial traversal since it
   // specifies the scalar value to be extracted.
-  virtual void InitTraversal(double scalarValue);
+  void InitTraversal(double scalarValue) VTK_OVERRIDE;
 
   // Description:
   // Return the next cell that may contain scalar value specified to
   // InitTraversal(). The value NULL is returned if the list is
   // exhausted. Make sure that InitTraversal() has been invoked first or
   // you'll get erratic behavior. This is inherently a serial operation.
-  virtual vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds,
-                               vtkDataArray *cellScalars);
+  vtkCell *GetNextCell(vtkIdType &cellId, vtkIdList* &ptIds,
+                               vtkDataArray *cellScalars) VTK_OVERRIDE;
 
   // The following methods supports parallel (threaded)
   // applications. Basically batches of cells (which represent a
@@ -108,18 +108,18 @@ public:
   // of the isocontour value. Note that the cells found in
   // [0...(NumberOfCellBatches-1)] will contain all the cells
   // potentially containing the isocontour.
-  virtual vtkIdType GetNumberOfCellBatches();
+  vtkIdType GetNumberOfCellBatches() VTK_OVERRIDE;
 
   // Description:
   // Return the array of cell ids in the specified batch. The method
   // also returns the number of cell ids in the array. Make sure to
   // call InitTraversal() beforehand.
-  virtual const vtkIdType* GetCellBatch(vtkIdType batchNum,
-                                        vtkIdType& numCells);
+  const vtkIdType* GetCellBatch(vtkIdType batchNum,
+                                        vtkIdType& numCells) VTK_OVERRIDE;
 
 protected:
   vtkSpanSpace();
-  ~vtkSpanSpace();
+  ~vtkSpanSpace() VTK_OVERRIDE;
 
   vtkIdType Resolution;
   vtkInternalSpanSpace *SpanSpace;
diff --git a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
index 196a2deca91e7b9dc7407f1049a43762f95f75a1..d2b7db214191668ad39ad2875e7d01fe225086fe 100644
--- a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
@@ -49,14 +49,14 @@ public:
   // Description:
   // Generalized interface for asking the executive to fulfill update
   // requests.
-  virtual int ProcessRequest(vtkInformation* request,
+  int ProcessRequest(vtkInformation* request,
                              vtkInformationVector** inInfo,
-                             vtkInformationVector* outInfo);
+                             vtkInformationVector* outInfo) VTK_OVERRIDE;
 
   // Description:
   // Bring the outputs up-to-date.
-  virtual int Update();
-  virtual int Update(int port);
+  int Update() VTK_OVERRIDE;
+  int Update(int port) VTK_OVERRIDE;
   virtual int UpdateWholeExtent();
 
   // Description:
@@ -236,7 +236,7 @@ public:
 
 protected:
   vtkStreamingDemandDrivenPipeline();
-  ~vtkStreamingDemandDrivenPipeline();
+  ~vtkStreamingDemandDrivenPipeline() VTK_OVERRIDE;
 
   // Description:
   // Keep track of the update time request corresponding to the
@@ -256,14 +256,14 @@ protected:
 
   // Setup default information on the output after the algorithm
   // executes information.
-  virtual int ExecuteInformation(vtkInformation* request,
+  int ExecuteInformation(vtkInformation* request,
                                  vtkInformationVector** inInfoVec,
-                                 vtkInformationVector* outInfoVec);
+                                 vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Copy information for the given request.
-  virtual void CopyDefaultInformation(vtkInformation* request, int direction,
+  void CopyDefaultInformation(vtkInformation* request, int direction,
                                       vtkInformationVector** inInfoVec,
-                                      vtkInformationVector* outInfoVec);
+                                      vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Helper to check output information before propagating it to inputs.
   virtual int VerifyOutputInformation(int outputPort,
@@ -272,26 +272,26 @@ protected:
 
 
   // Override this check to account for update extent.
-  virtual int NeedToExecuteData(int outputPort,
+  int NeedToExecuteData(int outputPort,
                                 vtkInformationVector** inInfoVec,
-                                vtkInformationVector* outInfoVec);
+                                vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Override these to handle the continue-executing option.
-  virtual void ExecuteDataStart(vtkInformation* request,
+  void ExecuteDataStart(vtkInformation* request,
                                 vtkInformationVector** inInfoVec,
-                                vtkInformationVector* outInfoVec);
-  virtual void ExecuteDataEnd(vtkInformation* request,
+                                vtkInformationVector* outInfoVec) VTK_OVERRIDE;
+  void ExecuteDataEnd(vtkInformation* request,
                               vtkInformationVector** inInfoVec,
-                              vtkInformationVector* outInfoVec);
+                              vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
   // Override this to handle cropping and ghost levels.
-  virtual void MarkOutputsGenerated(vtkInformation* request,
+  void MarkOutputsGenerated(vtkInformation* request,
                                     vtkInformationVector** inInfoVec,
-                                    vtkInformationVector* outInfoVec);
+                                    vtkInformationVector* outInfoVec) VTK_OVERRIDE;
 
 
   // Remove update/whole extent when resetting pipeline information.
-  virtual void ResetPipelineInformation(int port, vtkInformation*);
+  void ResetPipelineInformation(int port, vtkInformation*) VTK_OVERRIDE;
 
   // Flag for when an algorithm returns with CONTINUE_EXECUTING in the
   // request.
diff --git a/Common/ExecutionModel/vtkStructuredGridAlgorithm.h b/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
index 99cc0527781bf036e437f02bb2fec1ef1464915e..e3bb0b17a522ea81edd9c0763c8e1e72c42358a4 100644
--- a/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
@@ -50,9 +50,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -76,7 +76,7 @@ public:
 
 protected:
   vtkStructuredGridAlgorithm();
-  ~vtkStructuredGridAlgorithm();
+  ~vtkStructuredGridAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -101,8 +101,8 @@ protected:
     };
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkStructuredGridAlgorithm(const vtkStructuredGridAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkTableAlgorithm.h b/Common/ExecutionModel/vtkTableAlgorithm.h
index a9eee61fa78d83109a7dcd22b3d58efcc555962c..6da11a6d0e009f6279ca14966e117411d745688d 100644
--- a/Common/ExecutionModel/vtkTableAlgorithm.h
+++ b/Common/ExecutionModel/vtkTableAlgorithm.h
@@ -51,9 +51,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -69,7 +69,7 @@ public:
 
 protected:
   vtkTableAlgorithm();
-  ~vtkTableAlgorithm();
+  ~vtkTableAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -91,8 +91,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkTableAlgorithm(const vtkTableAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
index 7a374003ff0f715082bc9cb0f1e909e488f2662f..ab98e84be874eb37d92d8ae816be4e454b1762c8 100644
--- a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
+++ b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
@@ -36,25 +36,25 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkThreadedCompositeDataPipeline : public v
  public:
   static vtkThreadedCompositeDataPipeline* New();
   vtkTypeMacro(vtkThreadedCompositeDataPipeline,vtkCompositeDataPipeline);
-  void PrintSelf(ostream &os, vtkIndent indent);
+  void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE;
 
   // Description:
   // An API to CallAlgorithm that allows you to pass in the info objects to
   // be used
-  virtual int CallAlgorithm(vtkInformation* request, int direction,
+  int CallAlgorithm(vtkInformation* request, int direction,
                             vtkInformationVector** inInfo,
-                            vtkInformationVector* outInfo);
+                            vtkInformationVector* outInfo) VTK_OVERRIDE;
 
  protected:
   vtkThreadedCompositeDataPipeline();
-  ~vtkThreadedCompositeDataPipeline();
-  virtual void ExecuteEach(vtkCompositeDataIterator* iter,
+  ~vtkThreadedCompositeDataPipeline() VTK_OVERRIDE;
+  void ExecuteEach(vtkCompositeDataIterator* iter,
                            vtkInformationVector** inInfoVec,
                            vtkInformationVector* outInfoVec,
                            int compositePort,
                            int connection,
                            vtkInformation* request,
-                           vtkCompositeDataSet* compositeOutput);
+                           vtkCompositeDataSet* compositeOutput) VTK_OVERRIDE;
 
  private:
   vtkThreadedCompositeDataPipeline(const vtkThreadedCompositeDataPipeline&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkThreadedImageAlgorithm.h b/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
index 96d3b60db795804ebfb4e4ba253215ec79eb454b..9c20ac5ff0ae9c14b790407ed3d738392614f9a1 100644
--- a/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
+++ b/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
@@ -103,7 +103,7 @@ public:
 
 protected:
   vtkThreadedImageAlgorithm();
-  ~vtkThreadedImageAlgorithm();
+  ~vtkThreadedImageAlgorithm() VTK_OVERRIDE;
 
   vtkMultiThreader *Threader;
   int NumberOfThreads;
@@ -127,9 +127,9 @@ protected:
   // Description:
   // This is called by the superclass.
   // This is the method you should override.
-  virtual int RequestData(vtkInformation* request,
+  int RequestData(vtkInformation* request,
                           vtkInformationVector** inputVector,
-                          vtkInformationVector* outputVector);
+                          vtkInformationVector* outputVector) VTK_OVERRIDE;
 
   // Description:
   // Execute ThreadedRequestData for the given set of pieces.
diff --git a/Common/ExecutionModel/vtkTreeAlgorithm.h b/Common/ExecutionModel/vtkTreeAlgorithm.h
index 52f5d7bef6bde7ab000acb22c8ed8c56eb81ec59..c7cef1e7c43f24cd900fdf7c62ecf51132cba9c4 100644
--- a/Common/ExecutionModel/vtkTreeAlgorithm.h
+++ b/Common/ExecutionModel/vtkTreeAlgorithm.h
@@ -48,9 +48,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -66,7 +66,7 @@ public:
 
 protected:
   vtkTreeAlgorithm();
-  ~vtkTreeAlgorithm();
+  ~vtkTreeAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -88,8 +88,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkTreeAlgorithm(const vtkTreeAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkTrivialConsumer.h b/Common/ExecutionModel/vtkTrivialConsumer.h
index 56ed9a3d51f7f04407ad0f56c1f6e83a653a50ca..d835e61d18c6f6f824ed160826fad049b14bd93e 100644
--- a/Common/ExecutionModel/vtkTrivialConsumer.h
+++ b/Common/ExecutionModel/vtkTrivialConsumer.h
@@ -34,10 +34,10 @@ public:
 
 protected:
   vtkTrivialConsumer();
-  ~vtkTrivialConsumer();
+  ~vtkTrivialConsumer() VTK_OVERRIDE;
 
-  virtual int FillInputPortInformation(int, vtkInformation*);
-  virtual int FillOutputPortInformation(int, vtkInformation*);
+  int FillInputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
+  int FillOutputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
 private:
   vtkTrivialConsumer(const vtkTrivialConsumer&) VTK_DELETE_FUNCTION;
   void operator=(const vtkTrivialConsumer&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkTrivialProducer.h b/Common/ExecutionModel/vtkTrivialProducer.h
index 4a597e92a1a14ffd3dae39762c604069e5833ab4..07a159715b163d79033b4109e2fd01768271ce20 100644
--- a/Common/ExecutionModel/vtkTrivialProducer.h
+++ b/Common/ExecutionModel/vtkTrivialProducer.h
@@ -39,9 +39,9 @@ public:
   // Process upstream/downstream requests trivially.  The associated
   // output data object is never modified, but it is queried to
   // fulfill requests.
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Set the data object that is "produced" by this producer.  It is
@@ -51,7 +51,7 @@ public:
   // Description:
   // The modified time of this producer is the newer of this object or
   // the assigned output.
-  virtual vtkMTimeType GetMTime() VTK_OVERRIDE;
+  vtkMTimeType GetMTime() VTK_OVERRIDE;
 
   // Description:
   // Set the whole extent to use for the data this producer is producing.
@@ -69,11 +69,11 @@ public:
 
 protected:
   vtkTrivialProducer();
-  ~vtkTrivialProducer();
+  ~vtkTrivialProducer() VTK_OVERRIDE;
 
-  virtual int FillInputPortInformation(int, vtkInformation*);
-  virtual int FillOutputPortInformation(int, vtkInformation*);
-  virtual vtkExecutive* CreateDefaultExecutive();
+  int FillInputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
+  int FillOutputPortInformation(int, vtkInformation*) VTK_OVERRIDE;
+  vtkExecutive* CreateDefaultExecutive() VTK_OVERRIDE;
 
   // The real data object.
   vtkDataObject* Output;
diff --git a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
index 05c799ee65bbb610f30dd6a627e747ae10bcac97..dbd2e90244731dfa0728f0c022fff91729bcf6ca 100644
--- a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
@@ -52,9 +52,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Get the output data object for a port on this algorithm.
@@ -70,7 +70,7 @@ public:
 
 protected:
   vtkUndirectedGraphAlgorithm();
-  ~vtkUndirectedGraphAlgorithm();
+  ~vtkUndirectedGraphAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -92,8 +92,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkUndirectedGraphAlgorithm(const vtkUndirectedGraphAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
index 71bd4b299828a9e0ac202db3a91feed926d08fba..2165868a97b8186ddcb507fb31eb887623e5c5bf 100644
--- a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
@@ -49,13 +49,13 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkUniformGridAMRAlgorithm : public vtkAlgo
 
     // Description:
     // See vtkAlgorithm for details
-    virtual int ProcessRequest(vtkInformation* request,
+    int ProcessRequest(vtkInformation* request,
                                vtkInformationVector** inputVector,
-                               vtkInformationVector* outputVector );
+                               vtkInformationVector* outputVector ) VTK_OVERRIDE;
 
   protected:
     vtkUniformGridAMRAlgorithm();
-    virtual ~vtkUniformGridAMRAlgorithm();
+    ~vtkUniformGridAMRAlgorithm() VTK_OVERRIDE;
 
     // Description:
     // This is called by the superclass.
@@ -87,12 +87,12 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkUniformGridAMRAlgorithm : public vtkAlgo
 
     // Description:
     // Create a default executive
-    virtual vtkExecutive* CreateDefaultExecutive();
+    vtkExecutive* CreateDefaultExecutive() VTK_OVERRIDE;
 
     // Description:
     // See algorithm for more info.
-    virtual int FillOutputPortInformation(int port, vtkInformation* info);
-    virtual int FillInputPortInformation(int port, vtkInformation* info);
+    int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+    int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
     vtkDataObject *GetInput(int port);
 
diff --git a/Common/ExecutionModel/vtkUniformGridPartitioner.h b/Common/ExecutionModel/vtkUniformGridPartitioner.h
index 4659d9b2e55695c479eab4ab2714cb5fffc9f796..cc0ad30a027aae9a3215bad28d87997880df2da7 100644
--- a/Common/ExecutionModel/vtkUniformGridPartitioner.h
+++ b/Common/ExecutionModel/vtkUniformGridPartitioner.h
@@ -39,7 +39,7 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkUniformGridPartitioner :
   public:
       static vtkUniformGridPartitioner *New();
       vtkTypeMacro(vtkUniformGridPartitioner, vtkMultiBlockDataSetAlgorithm);
-      void PrintSelf(ostream &oss, vtkIndent indent );
+      void PrintSelf(ostream &oss, vtkIndent indent ) VTK_OVERRIDE;
 
       // Description:
       // Set/Get macro for the number of subdivisions.
@@ -58,13 +58,13 @@ class VTKCOMMONEXECUTIONMODEL_EXPORT vtkUniformGridPartitioner :
 
   protected:
     vtkUniformGridPartitioner();
-    virtual ~vtkUniformGridPartitioner();
+    ~vtkUniformGridPartitioner() VTK_OVERRIDE;
 
     // Standard Pipeline methods
-    virtual int RequestData(
-       vtkInformation*,vtkInformationVector**,vtkInformationVector*);
-    virtual int FillInputPortInformation(int port, vtkInformation *info);
-    virtual int FillOutputPortInformation(int port, vtkInformation *info);
+    int RequestData(
+       vtkInformation*,vtkInformationVector**,vtkInformationVector*) VTK_OVERRIDE;
+    int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
+    int FillOutputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
 
     int NumberOfPartitions;
     int NumberOfGhostLayers;
diff --git a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
index a3ba7d874513f9011ae8dbb80b92900e92d9b656..d3342d84947c63f3e6e65d677f9aede0ad39e8ba 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
@@ -49,9 +49,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // this method is not recommended for use, but lots of old style filters
   // use it
@@ -75,7 +75,7 @@ public:
 
 protected:
   vtkUnstructuredGridAlgorithm();
-  ~vtkUnstructuredGridAlgorithm();
+  ~vtkUnstructuredGridAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -97,8 +97,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkUnstructuredGridAlgorithm(const vtkUnstructuredGridAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
index 358e76e141c2e47fd037285faf8a994b52207e6b..79a70a107de92a6d521cbee715734f31860b92eb 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
+++ b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
@@ -49,9 +49,9 @@ public:
 
   // Description:
   // see vtkAlgorithm for details
-  virtual int ProcessRequest(vtkInformation*,
+  int ProcessRequest(vtkInformation*,
                              vtkInformationVector**,
-                             vtkInformationVector*);
+                             vtkInformationVector*) VTK_OVERRIDE;
 
   // Description:
   // Assign a data object as input. Note that this method does not
@@ -69,7 +69,7 @@ public:
 
 protected:
   vtkUnstructuredGridBaseAlgorithm();
-  ~vtkUnstructuredGridBaseAlgorithm();
+  ~vtkUnstructuredGridBaseAlgorithm() VTK_OVERRIDE;
 
   // convenience method
   virtual int RequestInformation(vtkInformation* request,
@@ -98,8 +98,8 @@ protected:
                                   vtkInformationVector*);
 
   // see algorithm for more info
-  virtual int FillOutputPortInformation(int port, vtkInformation* info);
-  virtual int FillInputPortInformation(int port, vtkInformation* info);
+  int FillOutputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
+  int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
 
 private:
   vtkUnstructuredGridBaseAlgorithm(const vtkUnstructuredGridBaseAlgorithm&) VTK_DELETE_FUNCTION;
diff --git a/Common/Math/vtkAmoebaMinimizer.h b/Common/Math/vtkAmoebaMinimizer.h
index ab12847b7e535d4d030070c812a8ba8c9f0b9415..ad9e6201e98f65872fd2984d5e201b8dd0c76ce4 100644
--- a/Common/Math/vtkAmoebaMinimizer.h
+++ b/Common/Math/vtkAmoebaMinimizer.h
@@ -152,7 +152,7 @@ public:
 
 protected:
   vtkAmoebaMinimizer();
-  ~vtkAmoebaMinimizer();
+  ~vtkAmoebaMinimizer() VTK_OVERRIDE;
 
   void (*Function)(void *);
   void (*FunctionArgDelete)(void *);
diff --git a/Common/Math/vtkFunctionSet.h b/Common/Math/vtkFunctionSet.h
index 7c1616b7993411737a32e78c44ca460c5ef19895..984f9068f90e2de23563f9c8121d3511304b9478 100644
--- a/Common/Math/vtkFunctionSet.h
+++ b/Common/Math/vtkFunctionSet.h
@@ -58,7 +58,7 @@ public:
 
 protected:
   vtkFunctionSet();
-  ~vtkFunctionSet() {}
+  ~vtkFunctionSet() VTK_OVERRIDE {}
 
   int NumFuncs;
   int NumIndepVars;
diff --git a/Common/Math/vtkInitialValueProblemSolver.h b/Common/Math/vtkInitialValueProblemSolver.h
index 5e099a3cab5d638d52d470621ac0a06984c2b90c..fe076739a8fdf1bb186ce0ecc60e7662225db820 100644
--- a/Common/Math/vtkInitialValueProblemSolver.h
+++ b/Common/Math/vtkInitialValueProblemSolver.h
@@ -112,7 +112,7 @@ public:
 
 protected:
   vtkInitialValueProblemSolver();
-  ~vtkInitialValueProblemSolver();
+  ~vtkInitialValueProblemSolver() VTK_OVERRIDE;
 
   virtual void Initialize();
 
diff --git a/Common/Math/vtkMatrix3x3.h b/Common/Math/vtkMatrix3x3.h
index ec0daea5f1176080f5e331968f3c187d6043479e..9e63bde535e3846e8f3d1a3deb8b3e63344a488e 100644
--- a/Common/Math/vtkMatrix3x3.h
+++ b/Common/Math/vtkMatrix3x3.h
@@ -155,7 +155,7 @@ public:
 
 protected:
   vtkMatrix3x3();
-  ~vtkMatrix3x3();
+  ~vtkMatrix3x3() VTK_OVERRIDE;
 
   double Element[3][3]; // The elements of the 3x3 matrix
 
diff --git a/Common/Math/vtkMatrix4x4.h b/Common/Math/vtkMatrix4x4.h
index 2ef7f5266a8e8b652ceb6cd17e8d296504756933..28d3edd2eba5b22af1927ad8383d064b689a3437 100644
--- a/Common/Math/vtkMatrix4x4.h
+++ b/Common/Math/vtkMatrix4x4.h
@@ -160,7 +160,7 @@ public:
 
 protected:
   vtkMatrix4x4() { vtkMatrix4x4::Identity(*this->Element); };
-  ~vtkMatrix4x4() {}
+  ~vtkMatrix4x4() VTK_OVERRIDE {}
 
   float FloatPoint[4];
   double DoublePoint[4];
diff --git a/Common/Math/vtkPolynomialSolversUnivariate.h b/Common/Math/vtkPolynomialSolversUnivariate.h
index 2b05eeabec32468fb312f1f92a9007f445654911..a851bd9486753f62da2a867c6153b1c3ea30ec7a 100644
--- a/Common/Math/vtkPolynomialSolversUnivariate.h
+++ b/Common/Math/vtkPolynomialSolversUnivariate.h
@@ -263,7 +263,7 @@ public:
 
 protected:
   vtkPolynomialSolversUnivariate() {}
-  ~vtkPolynomialSolversUnivariate() {}
+  ~vtkPolynomialSolversUnivariate() VTK_OVERRIDE {}
 
   static double DivisionTolerance;
 
diff --git a/Common/Math/vtkQuaternionInterpolator.h b/Common/Math/vtkQuaternionInterpolator.h
index 12f4fcc8b8c73425086bc85deab78de6ffdf77f6..599a25cf0a2fb6c89369adf674abfe64ee7f1540 100644
--- a/Common/Math/vtkQuaternionInterpolator.h
+++ b/Common/Math/vtkQuaternionInterpolator.h
@@ -128,7 +128,7 @@ public:
 
 protected:
   vtkQuaternionInterpolator();
-  virtual ~vtkQuaternionInterpolator();
+  ~vtkQuaternionInterpolator() VTK_OVERRIDE;
 
   // Specify the type of interpolation to use
   int InterpolationType;
diff --git a/Common/Math/vtkRungeKutta2.h b/Common/Math/vtkRungeKutta2.h
index 40e5bd6e81b3cde805b2a090bb01bd249d3a407c..1675602efcd2ec1d6423f0e2eb6acd8bfeff3690 100644
--- a/Common/Math/vtkRungeKutta2.h
+++ b/Common/Math/vtkRungeKutta2.h
@@ -85,7 +85,7 @@ public:
 
 protected:
   vtkRungeKutta2();
-  ~vtkRungeKutta2();
+  ~vtkRungeKutta2() VTK_OVERRIDE;
 private:
   vtkRungeKutta2(const vtkRungeKutta2&) VTK_DELETE_FUNCTION;
   void operator=(const vtkRungeKutta2&) VTK_DELETE_FUNCTION;
diff --git a/Common/Math/vtkRungeKutta4.h b/Common/Math/vtkRungeKutta4.h
index 6c1648f57dbc68c0bcb0c3260bcad914f25be2df..4b331450ab586330fa7d7e42b7a4e63ddc571649 100644
--- a/Common/Math/vtkRungeKutta4.h
+++ b/Common/Math/vtkRungeKutta4.h
@@ -87,7 +87,7 @@ public:
 
 protected:
   vtkRungeKutta4();
-  ~vtkRungeKutta4();
+  ~vtkRungeKutta4() VTK_OVERRIDE;
 
   void Initialize() VTK_OVERRIDE;
 
diff --git a/Common/Math/vtkRungeKutta45.h b/Common/Math/vtkRungeKutta45.h
index 11f25f4879909dc4f149d468c73c05679dd04968..aed4b9d882e9852674539b5e91da7ae5da77bdfc 100644
--- a/Common/Math/vtkRungeKutta45.h
+++ b/Common/Math/vtkRungeKutta45.h
@@ -101,7 +101,7 @@ public:
 
 protected:
   vtkRungeKutta45();
-  ~vtkRungeKutta45();
+  ~vtkRungeKutta45() VTK_OVERRIDE;
 
   void Initialize() VTK_OVERRIDE;
 
diff --git a/Common/Misc/vtkContourValues.h b/Common/Misc/vtkContourValues.h
index 2a4bbf532876dc2327a5bbbfc87c730e4bd858f0..4fa46e1a1ac7ab5115ce0053fb3a0c533167306f 100644
--- a/Common/Misc/vtkContourValues.h
+++ b/Common/Misc/vtkContourValues.h
@@ -81,7 +81,7 @@ public:
 
 protected:
   vtkContourValues();
-  ~vtkContourValues();
+  ~vtkContourValues() VTK_OVERRIDE;
 
   vtkDoubleArray *Contours;
 
diff --git a/Common/Misc/vtkFunctionParser.h b/Common/Misc/vtkFunctionParser.h
index 77a3ff0137b0d61d398caa38429fcda111b28970..e7426a547ec71e1425d04605d8280a7f3f9deed8 100644
--- a/Common/Misc/vtkFunctionParser.h
+++ b/Common/Misc/vtkFunctionParser.h
@@ -266,7 +266,7 @@ public:
 
 protected:
   vtkFunctionParser();
-  ~vtkFunctionParser();
+  ~vtkFunctionParser() VTK_OVERRIDE;
 
   int Parse();
 
diff --git a/Common/Misc/vtkHeap.h b/Common/Misc/vtkHeap.h
index 3b89e8279be9c912b5e303db2da0708dd2ae199c..575e2c091db8a9c08e04355e76ebf75fda800783 100644
--- a/Common/Misc/vtkHeap.h
+++ b/Common/Misc/vtkHeap.h
@@ -83,7 +83,7 @@ public:
 
 protected:
   vtkHeap();
-  ~vtkHeap();
+  ~vtkHeap() VTK_OVERRIDE;
 
   void Add(size_t blockSize);
   void CleanAll();
diff --git a/Common/System/vtkClientSocket.h b/Common/System/vtkClientSocket.h
index 4639dbf2c7b847dfaf0209e2013299b3b763fd90..fe36c82d4f2ba1d642780856df4a0c037dff8f9b 100644
--- a/Common/System/vtkClientSocket.h
+++ b/Common/System/vtkClientSocket.h
@@ -41,7 +41,7 @@ public:
 
 protected:
   vtkClientSocket();
-  ~vtkClientSocket();
+  ~vtkClientSocket() VTK_OVERRIDE;
 
   vtkSetMacro(ConnectingSide, bool);
   bool ConnectingSide;
diff --git a/Common/System/vtkDirectory.h b/Common/System/vtkDirectory.h
index 0fe828e9b850ce7d254d66c62c5ba96a5fe3fb0d..aea12137f987f9dd92deeb2ecbe4b8e609f7152a 100644
--- a/Common/System/vtkDirectory.h
+++ b/Common/System/vtkDirectory.h
@@ -89,7 +89,7 @@ protected:
   // NumberOfFiles to 0
   void CleanUpFilesAndPath();
   vtkDirectory();
-  ~vtkDirectory() ;
+  ~vtkDirectory() VTK_OVERRIDE;
 
 private:
   char* Path;           // Path to Open'ed directory
diff --git a/Common/System/vtkServerSocket.h b/Common/System/vtkServerSocket.h
index ee0733f1dd59da413e429200b571f13ce71d4dd1..830a9f8616fd8da0508aeeddad0eb89f2fa93dd0 100644
--- a/Common/System/vtkServerSocket.h
+++ b/Common/System/vtkServerSocket.h
@@ -46,7 +46,7 @@ public:
   int GetServerPort();
 protected:
   vtkServerSocket();
-  ~vtkServerSocket();
+  ~vtkServerSocket() VTK_OVERRIDE;
 
 private:
   vtkServerSocket(const vtkServerSocket&) VTK_DELETE_FUNCTION;
diff --git a/Common/System/vtkSocket.h b/Common/System/vtkSocket.h
index 2149d60ae70f567c6322312f7c0b5258069eebf4..398df2ccc3915d7fb774e21bacc0b7e2cf63f16f 100644
--- a/Common/System/vtkSocket.h
+++ b/Common/System/vtkSocket.h
@@ -67,7 +67,7 @@ public:
     unsigned long msec, int* selected_index);
 protected:
   vtkSocket();
-  ~vtkSocket();
+  ~vtkSocket() VTK_OVERRIDE;
 
   int SocketDescriptor;
 
diff --git a/Common/System/vtkSocketCollection.h b/Common/System/vtkSocketCollection.h
index 93159b632a1380691990085fa2800d1fe2517c00..27f51bb517a067671852130b0ce8aed7a137c362 100644
--- a/Common/System/vtkSocketCollection.h
+++ b/Common/System/vtkSocketCollection.h
@@ -56,7 +56,7 @@ public:
   void RemoveAllItems();
 protected:
   vtkSocketCollection();
-  ~vtkSocketCollection();
+  ~vtkSocketCollection() VTK_OVERRIDE;
 
   vtkSocket* SelectedSocket;
 private:
diff --git a/Common/System/vtkThreadMessager.h b/Common/System/vtkThreadMessager.h
index b7508056a3547694d5c385d8391df6ff9918d345..05c4e8be3c1b2481de4add78b408078366864689 100644
--- a/Common/System/vtkThreadMessager.h
+++ b/Common/System/vtkThreadMessager.h
@@ -65,7 +65,7 @@ public:
 
 protected:
   vtkThreadMessager();
-  ~vtkThreadMessager();
+  ~vtkThreadMessager() VTK_OVERRIDE;
 
 #ifdef VTK_USE_PTHREADS
   pthread_mutex_t Mutex;
diff --git a/Common/System/vtkTimerLog.h b/Common/System/vtkTimerLog.h
index 286f82c19c3ee80d65b466c77a814202944f934c..20ea9583f68d11ca2ba0f4f6650015f4056de91f 100644
--- a/Common/System/vtkTimerLog.h
+++ b/Common/System/vtkTimerLog.h
@@ -158,7 +158,7 @@ public:
 
 protected:
   vtkTimerLog() {this->StartTime=0; this->EndTime = 0;}; //insure constructor/destructor protected
-  virtual ~vtkTimerLog() { };
+  ~vtkTimerLog() VTK_OVERRIDE { };
 
   static vtkTimerLogEntry* GetEvent(int i);
 
diff --git a/Common/Transforms/vtkAbstractTransform.h b/Common/Transforms/vtkAbstractTransform.h
index d317c556b158ba7900b3d2614ea7769093436b1b..87119804532efc8f80288c36461afcc320c53890 100644
--- a/Common/Transforms/vtkAbstractTransform.h
+++ b/Common/Transforms/vtkAbstractTransform.h
@@ -243,7 +243,7 @@ public:
 
 protected:
   vtkAbstractTransform();
-  ~vtkAbstractTransform();
+  ~vtkAbstractTransform() VTK_OVERRIDE;
 
   // Description:
   // Perform any subclass-specific Update.
diff --git a/Common/Transforms/vtkCylindricalTransform.h b/Common/Transforms/vtkCylindricalTransform.h
index d73711f5b52b4c0783dd5c0190eeb4d20f52301f..91dee346ac9b9975f213e0c9fc19647796652844 100644
--- a/Common/Transforms/vtkCylindricalTransform.h
+++ b/Common/Transforms/vtkCylindricalTransform.h
@@ -44,7 +44,7 @@ public:
 
 protected:
   vtkCylindricalTransform();
-  ~vtkCylindricalTransform();
+  ~vtkCylindricalTransform() VTK_OVERRIDE;
 
   // Description:
   // Copy this transform from another of the same type.
diff --git a/Common/Transforms/vtkGeneralTransform.h b/Common/Transforms/vtkGeneralTransform.h
index 16f9caee3b84673e5b8bfacf65cb8dc47cc79b67..d988a34443556c104bd508b9173eea1ffa885c53 100644
--- a/Common/Transforms/vtkGeneralTransform.h
+++ b/Common/Transforms/vtkGeneralTransform.h
@@ -218,7 +218,7 @@ public:
 
 protected:
   vtkGeneralTransform();
-  ~vtkGeneralTransform();
+  ~vtkGeneralTransform() VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkAbstractTransform *t) VTK_OVERRIDE;
   void InternalUpdate() VTK_OVERRIDE;
diff --git a/Common/Transforms/vtkHomogeneousTransform.h b/Common/Transforms/vtkHomogeneousTransform.h
index 472f997b95735f9db3ca434ca48a4808d2db7fe4..4d66f5f8e1b74ae7a35e873360e7a9f26fb58e94 100644
--- a/Common/Transforms/vtkHomogeneousTransform.h
+++ b/Common/Transforms/vtkHomogeneousTransform.h
@@ -89,7 +89,7 @@ public:
 
 protected:
   vtkHomogeneousTransform();
-  ~vtkHomogeneousTransform();
+  ~vtkHomogeneousTransform() VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkAbstractTransform *transform) VTK_OVERRIDE;
 
diff --git a/Common/Transforms/vtkIdentityTransform.h b/Common/Transforms/vtkIdentityTransform.h
index 7c1f9a37a11a8c1bd7e04b4228658c7481b0b9f9..e3fcded3638468f0ae40c59fabc8f9b861284840 100644
--- a/Common/Transforms/vtkIdentityTransform.h
+++ b/Common/Transforms/vtkIdentityTransform.h
@@ -98,7 +98,7 @@ public:
 
 protected:
   vtkIdentityTransform();
-  ~vtkIdentityTransform();
+  ~vtkIdentityTransform() VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkAbstractTransform *t) VTK_OVERRIDE;
 
diff --git a/Common/Transforms/vtkLandmarkTransform.h b/Common/Transforms/vtkLandmarkTransform.h
index bc7ffa8295fc2b49e719855c888c6f1a643ec8ba..aec6f29cf121d8866e32b9b32715933460a8074e 100644
--- a/Common/Transforms/vtkLandmarkTransform.h
+++ b/Common/Transforms/vtkLandmarkTransform.h
@@ -86,7 +86,7 @@ public:
 
 protected:
   vtkLandmarkTransform();
-  ~vtkLandmarkTransform();
+  ~vtkLandmarkTransform() VTK_OVERRIDE;
 
   // Update the matrix from the quaternion.
   void InternalUpdate() VTK_OVERRIDE;
diff --git a/Common/Transforms/vtkLinearTransform.h b/Common/Transforms/vtkLinearTransform.h
index abd5146c3c474563e4564d3d6fe42cd97e861831..6b7b045b3023dba1a040abedaba2b5241fce95a7 100644
--- a/Common/Transforms/vtkLinearTransform.h
+++ b/Common/Transforms/vtkLinearTransform.h
@@ -183,7 +183,7 @@ public:
 
 protected:
   vtkLinearTransform() {}
-  ~vtkLinearTransform() {}
+  ~vtkLinearTransform() VTK_OVERRIDE {}
 private:
   vtkLinearTransform(const vtkLinearTransform&) VTK_DELETE_FUNCTION;
   void operator=(const vtkLinearTransform&) VTK_DELETE_FUNCTION;
diff --git a/Common/Transforms/vtkMatrixToHomogeneousTransform.h b/Common/Transforms/vtkMatrixToHomogeneousTransform.h
index 950723b616e4762b824d2fca7f11ed3a9926d8fc..7e806f6ef77a5c73dff305d87929516f8ce81ceb 100644
--- a/Common/Transforms/vtkMatrixToHomogeneousTransform.h
+++ b/Common/Transforms/vtkMatrixToHomogeneousTransform.h
@@ -58,7 +58,7 @@ class VTKCOMMONTRANSFORMS_EXPORT vtkMatrixToHomogeneousTransform : public vtkHom
 
 protected:
   vtkMatrixToHomogeneousTransform();
-  ~vtkMatrixToHomogeneousTransform();
+  ~vtkMatrixToHomogeneousTransform() VTK_OVERRIDE;
 
   void InternalUpdate() VTK_OVERRIDE;
   void InternalDeepCopy(vtkAbstractTransform *transform) VTK_OVERRIDE;
diff --git a/Common/Transforms/vtkMatrixToLinearTransform.h b/Common/Transforms/vtkMatrixToLinearTransform.h
index 2bb13ac4fbb808e816bd409698c8871f85f50222..c38154982d31ce6d066d6b36437d725f93b9ff62 100644
--- a/Common/Transforms/vtkMatrixToLinearTransform.h
+++ b/Common/Transforms/vtkMatrixToLinearTransform.h
@@ -59,7 +59,7 @@ class VTKCOMMONTRANSFORMS_EXPORT vtkMatrixToLinearTransform : public vtkLinearTr
 
 protected:
   vtkMatrixToLinearTransform();
-  ~vtkMatrixToLinearTransform();
+  ~vtkMatrixToLinearTransform() VTK_OVERRIDE;
 
   void InternalUpdate() VTK_OVERRIDE;
   void InternalDeepCopy(vtkAbstractTransform *transform) VTK_OVERRIDE;
diff --git a/Common/Transforms/vtkPerspectiveTransform.h b/Common/Transforms/vtkPerspectiveTransform.h
index 6b704290b94f3a22485e506869fb476a24172252..21b47af2db8e82dd687e172d6f69a72625731f39 100644
--- a/Common/Transforms/vtkPerspectiveTransform.h
+++ b/Common/Transforms/vtkPerspectiveTransform.h
@@ -319,7 +319,7 @@ class VTKCOMMONTRANSFORMS_EXPORT vtkPerspectiveTransform : public vtkHomogeneous
 
 protected:
   vtkPerspectiveTransform();
-  ~vtkPerspectiveTransform();
+  ~vtkPerspectiveTransform() VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkAbstractTransform *t) VTK_OVERRIDE;
   void InternalUpdate() VTK_OVERRIDE;
diff --git a/Common/Transforms/vtkSphericalTransform.h b/Common/Transforms/vtkSphericalTransform.h
index 30b3b2b2cf74390944fd7d3ac00f0763719ce20a..ae642a84db701bc7b552611bb56381527f69af44 100644
--- a/Common/Transforms/vtkSphericalTransform.h
+++ b/Common/Transforms/vtkSphericalTransform.h
@@ -45,7 +45,7 @@ public:
 
 protected:
   vtkSphericalTransform();
-  ~vtkSphericalTransform();
+  ~vtkSphericalTransform() VTK_OVERRIDE;
 
   // Description:
   // Copy this transform from another of the same type.
diff --git a/Common/Transforms/vtkThinPlateSplineTransform.h b/Common/Transforms/vtkThinPlateSplineTransform.h
index d0808867a38c08317c48d693813750c1b713bb29..c43cbba1ff0608c0f9fe4d7bbd16af77107de59d 100644
--- a/Common/Transforms/vtkThinPlateSplineTransform.h
+++ b/Common/Transforms/vtkThinPlateSplineTransform.h
@@ -104,7 +104,7 @@ public:
 
 protected:
   vtkThinPlateSplineTransform();
-  ~vtkThinPlateSplineTransform();
+  ~vtkThinPlateSplineTransform() VTK_OVERRIDE;
 
   // Description:
   // Prepare the transformation for application.
diff --git a/Common/Transforms/vtkTransform.h b/Common/Transforms/vtkTransform.h
index dfa17a8201d3217a1bc0dcc287b06e6851e7af32..ef7df6dd60ef69212e33e74264976ac66bc94ac7 100644
--- a/Common/Transforms/vtkTransform.h
+++ b/Common/Transforms/vtkTransform.h
@@ -321,7 +321,7 @@ class VTKCOMMONTRANSFORMS_EXPORT vtkTransform : public vtkLinearTransform
 
 protected:
   vtkTransform ();
-  ~vtkTransform ();
+  ~vtkTransform () VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkAbstractTransform *t) VTK_OVERRIDE;
 
diff --git a/Common/Transforms/vtkTransform2D.h b/Common/Transforms/vtkTransform2D.h
index 72a7d28873805d571fb05a860ac77fc18368f98a..9e195c1ee5f9ca74a8f8ca7a5a168e95efafd42a 100644
--- a/Common/Transforms/vtkTransform2D.h
+++ b/Common/Transforms/vtkTransform2D.h
@@ -166,7 +166,7 @@ class VTKCOMMONTRANSFORMS_EXPORT vtkTransform2D : public vtkObject
 
 protected:
   vtkTransform2D ();
-  ~vtkTransform2D ();
+  ~vtkTransform2D () VTK_OVERRIDE;
 
   void InternalDeepCopy(vtkTransform2D *t);
 
diff --git a/Common/Transforms/vtkTransformCollection.h b/Common/Transforms/vtkTransformCollection.h
index 424812a8b19a8b1fa93fac94ef494dc60b42b47f..770c85084e0a51890fb399fac2a0247c99ff1d97 100644
--- a/Common/Transforms/vtkTransformCollection.h
+++ b/Common/Transforms/vtkTransformCollection.h
@@ -52,7 +52,7 @@ public:
 
 protected:
   vtkTransformCollection() {}
-  ~vtkTransformCollection() {}
+  ~vtkTransformCollection() VTK_OVERRIDE {}
 
 
 private:
diff --git a/Common/Transforms/vtkWarpTransform.h b/Common/Transforms/vtkWarpTransform.h
index dc13e31fed76ff0300bf865494e2063fb98009a3..2e43f2a3dc08057de376693a9be57a29527987e9 100644
--- a/Common/Transforms/vtkWarpTransform.h
+++ b/Common/Transforms/vtkWarpTransform.h
@@ -104,7 +104,7 @@ public:
 
 protected:
   vtkWarpTransform();
-  ~vtkWarpTransform();
+  ~vtkWarpTransform() VTK_OVERRIDE;
 
   // Description:
   // If the InverseFlag is set to 0, then a call to InternalTransformPoint