diff --git a/Core/Binning/ConstKBinAxis.h b/Core/Binning/ConstKBinAxis.h index 33be5942421d3d56c45b20f0dd2d02acd29bbacb..d10c7c96b43723bf9d9a9b934d27acc5a256c951 100644 --- a/Core/Binning/ConstKBinAxis.h +++ b/Core/Binning/ConstKBinAxis.h @@ -30,17 +30,18 @@ public: //! @param start low edge of first bin //! @param end upper edge of last bin ConstKBinAxis(const std::string& name, size_t nbins, double start, double end); - virtual ~ConstKBinAxis() {} + ~ConstKBinAxis() final {} - ConstKBinAxis* clone() const; + ConstKBinAxis* clone() const final { + return new ConstKBinAxis(getName(), m_nbins, m_start, m_end); } - ConstKBinAxis* createClippedAxis(double left, double right) const; + ConstKBinAxis* createClippedAxis(double left, double right) const final; protected: ConstKBinAxis(const std::string& name, size_t nbins); - void print(std::ostream& ostr) const; - bool equals(const IAxis& other) const; + void print(std::ostream& ostr) const final; + bool equals(const IAxis& other) const final; double m_start; double m_end; diff --git a/Core/Binning/VariableBinAxis.h b/Core/Binning/VariableBinAxis.h index 18d1d02dda2ab9783840126760ef10200847fec4..61b5ef86676b0dc3bde22d0e85f7e800f8283d47 100644 --- a/Core/Binning/VariableBinAxis.h +++ b/Core/Binning/VariableBinAxis.h @@ -51,13 +51,13 @@ public: std::vector<double> getBinCenters() const; std::vector<double> getBinBoundaries() const { return m_bin_boundaries; } - VariableBinAxis* createClippedAxis(double left, double right) const; + virtual VariableBinAxis* createClippedAxis(double left, double right) const; protected: VariableBinAxis(const std::string& name, int nbins = 0); void setBinBoundaries(const std::vector<double> &bin_boundaries); - void print(std::ostream& ostr) const; + virtual void print(std::ostream& ostr) const; virtual bool equals(const IAxis& other) const; size_t m_nbins; diff --git a/Core/Material/HomogeneousMagneticMaterial.h b/Core/Material/HomogeneousMagneticMaterial.h index 9d69917b487fb74336761a721e6fa91acc8a4ffa..985781db3d8f8efd14cac447362c2a3bbd625c81 100644 --- a/Core/Material/HomogeneousMagneticMaterial.h +++ b/Core/Material/HomogeneousMagneticMaterial.h @@ -27,18 +27,16 @@ public: #ifndef SWIG EIGEN_MAKE_ALIGNED_OPERATOR_NEW #endif - //! Constructs a material with _name_, _refractive_index_ and - //! _magnetic_field_ - HomogeneousMagneticMaterial(const std::string &name, const complex_t refractive_index, + //! Constructs a material with _name_, _refractive_index_ and _magnetic_field_ + HomogeneousMagneticMaterial(const std::string& name, const complex_t refractive_index, const kvector_t magnetic_field); - //! Constructs a material with _name_, refractive_index parameters and - //! _magnetic_field_ + //! Constructs a material with _name_, refractive_index parameters and _magnetic_field_ HomogeneousMagneticMaterial(const std::string &name, double refractive_index_delta, double refractive_index_beta, const kvector_t magnetic_field); - HomogeneousMagneticMaterial* clone() const final override; - HomogeneousMagneticMaterial* cloneInverted() const final override; + HomogeneousMagneticMaterial* clone() const final; + HomogeneousMagneticMaterial* cloneInverted() const final; //! Get the magnetic field (in Tesla) kvector_t getMagneticField() const { return m_magnetic_field; } @@ -48,7 +46,7 @@ public: //! Indicates that the material is not scalar. This means that different //! polarization states will be diffracted differently - virtual bool isScalarMaterial() const { return false; } + bool isScalarMaterial() const final { return false; } #ifndef SWIG //! Get the scattering matrix (~potential V) from the material. @@ -57,11 +55,10 @@ public: #endif //! Create a new material that is transformed with respect to this one - virtual const IMaterial* createTransformedMaterial( - const Transform3D& transform) const; + const IMaterial* createTransformedMaterial(const Transform3D& transform) const final; protected: - virtual void print(std::ostream &ostr) const { + void print(std::ostream &ostr) const final { ostr << "HomMagMat:" << getName() << "<" << this << ">{ " << "R=" << m_refractive_index << ", B=" << m_magnetic_field << "}"; } diff --git a/Core/Particle/ParticleDistribution.h b/Core/Particle/ParticleDistribution.h index 3316bd5e4347cea212a5b70426ef9ff430a76e80..1ab8e0c662b187d06ba8aea9932572fe646c07ee 100644 --- a/Core/Particle/ParticleDistribution.h +++ b/Core/Particle/ParticleDistribution.h @@ -29,19 +29,19 @@ class BA_CORE_API_ ParticleDistribution : public IAbstractParticle public: ParticleDistribution(const IParticle& prototype, const ParameterDistribution& par_distr); - virtual ParticleDistribution* clone() const; - virtual ParticleDistribution* cloneInvertB() const; + ParticleDistribution* clone() const final; + ParticleDistribution* cloneInvertB() const final; - void accept(ISampleVisitor* visitor) const override final { visitor->visit(this); } + void accept(ISampleVisitor* visitor) const final { visitor->visit(this); } //! Returns textual representation of *this and its descendants. - virtual std::string to_str(int indent=0) const; + std::string to_str(int indent=0) const final; //! Sets the refractive index of the ambient material. - virtual void setAmbientMaterial(const IMaterial& material); + void setAmbientMaterial(const IMaterial& material) final; //! Returns particle's material. - virtual const IMaterial* getAmbientMaterial() const; + const IMaterial* getAmbientMaterial() const final; //! Returns list of new particles generated according to a distribution. std::vector<const IParticle*> generateParticles() const;