mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-07 18:30:55 +03:00
0025182: Standard_OVERRIDE - add alias for C++11 "override" specifier
This commit is contained in:
parent
0bd2a43ff5
commit
a315743983
@ -556,6 +556,41 @@ If a class has a destructor, an assignment operator or a copy constructor, it us
|
|||||||
|
|
||||||
A class with virtual function(s) ought to have a virtual destructor.
|
A class with virtual function(s) ought to have a virtual destructor.
|
||||||
|
|
||||||
|
### Overriding virtual methods
|
||||||
|
|
||||||
|
Declaration of overriding method should contains specifiers "virtual" and "override"
|
||||||
|
(using Standard_OVERRIDE alias for compatibility with old compilers).
|
||||||
|
|
||||||
|
~~~~~{.cpp}
|
||||||
|
class MyPackage_BaseClass
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Standard_EXPORT virtual Standard_Boolean Perform();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
~~~~~{.cpp}
|
||||||
|
class MyPackage_MyClass : public MyPackage_BaseClass
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Standard_EXPORT virtual Standard_Boolean Perform() Standard_OVERRIDE;
|
||||||
|
|
||||||
|
};
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
This makes class definition more clear (virtual methods become highlighted).
|
||||||
|
|
||||||
|
Declaration of interface using pure virtual functions protects against
|
||||||
|
incomplete inheritance at first level, but does not help when method is overridden multiple times within nested inheritance
|
||||||
|
or when method in base class is intended to be optional.
|
||||||
|
|
||||||
|
And here "override" specifier introduces additional protection against situations when interface changes might be missed
|
||||||
|
(class might contain old methods which will be never called).
|
||||||
|
|
||||||
### Default parameter value
|
### Default parameter value
|
||||||
|
|
||||||
Do not redefine a default parameter value in an inherited function.
|
Do not redefine a default parameter value in an inherited function.
|
||||||
|
@ -92,19 +92,19 @@ public: //! @name sub-shape aspects
|
|||||||
public: //! @name global aspects
|
public: //! @name global aspects
|
||||||
|
|
||||||
//! Setup color of entire shape.
|
//! Setup color of entire shape.
|
||||||
Standard_EXPORT virtual void SetColor (const Quantity_Color& theColor);
|
Standard_EXPORT virtual void SetColor (const Quantity_Color& theColor) Standard_OVERRIDE;
|
||||||
|
|
||||||
//! Setup line width of entire shape.
|
//! Setup line width of entire shape.
|
||||||
Standard_EXPORT virtual void SetWidth (const Standard_Real theLineWidth);
|
Standard_EXPORT virtual void SetWidth (const Standard_Real theLineWidth) Standard_OVERRIDE;
|
||||||
|
|
||||||
//! Sets transparency value.
|
//! Sets transparency value.
|
||||||
Standard_EXPORT virtual void SetTransparency (const Standard_Real theValue);
|
Standard_EXPORT virtual void SetTransparency (const Standard_Real theValue) Standard_OVERRIDE;
|
||||||
|
|
||||||
protected: //! @name override presentation computation
|
protected: //! @name override presentation computation
|
||||||
|
|
||||||
Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& thePrsMgr,
|
Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& thePrsMgr,
|
||||||
const Handle(Prs3d_Presentation)& thePrs,
|
const Handle(Prs3d_Presentation)& thePrs,
|
||||||
const Standard_Integer theMode);
|
const Standard_Integer theMode) Standard_OVERRIDE;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -27,6 +27,16 @@
|
|||||||
# define Handle(ClassName) Handle_##ClassName
|
# define Handle(ClassName) Handle_##ClassName
|
||||||
# define STANDARD_TYPE(aType) aType##_Type_()
|
# define STANDARD_TYPE(aType) aType##_Type_()
|
||||||
|
|
||||||
|
#if defined(__cplusplus) && (__cplusplus >= 201100L)
|
||||||
|
// part of C++11 standard
|
||||||
|
#define Standard_OVERRIDE override
|
||||||
|
#elif defined(_MSC_VER) && (_MSC_VER >= 1700)
|
||||||
|
// MSVC extension since VS2005
|
||||||
|
#define Standard_OVERRIDE override
|
||||||
|
#else
|
||||||
|
#define Standard_OVERRIDE
|
||||||
|
#endif
|
||||||
|
|
||||||
//======================================================
|
//======================================================
|
||||||
// Windows-specific definitions
|
// Windows-specific definitions
|
||||||
//======================================================
|
//======================================================
|
||||||
@ -36,7 +46,7 @@
|
|||||||
#error "Wrong compiler options has been detected. Add /DWNT option for proper compilation!!!!!"
|
#error "Wrong compiler options has been detected. Add /DWNT option for proper compilation!!!!!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# if defined(WNT) && !defined(HAVE_NO_DLL)
|
# if defined(_WIN32) && !defined(HAVE_NO_DLL)
|
||||||
|
|
||||||
# ifndef Standard_EXPORT
|
# ifndef Standard_EXPORT
|
||||||
# define Standard_EXPORT __declspec( dllexport )
|
# define Standard_EXPORT __declspec( dllexport )
|
||||||
@ -129,7 +139,7 @@
|
|||||||
|
|
||||||
# ifndef __Standard_API
|
# ifndef __Standard_API
|
||||||
//# ifdef WNT
|
//# ifdef WNT
|
||||||
# if !defined(WNT) || defined(__Standard_DLL) || defined(__FSD_DLL) || defined(__MMgt_DLL) || defined(__OSD_DLL) || defined(__Plugin_DLL) || defined(__Quantity_DLL) || defined(__Resource_DLL) || defined(__SortTools_DLL) || defined(__StdFail_DLL) || defined(__Storage_DLL) || defined(__TColStd_DLL) || defined(__TCollection_DLL) || defined(__TShort_DLL) || defined(__Units_DLL) || defined(__UnitsAPI_DLL) || defined(__Dico_DLL)
|
# if !defined(_WIN32) || defined(__Standard_DLL) || defined(__FSD_DLL) || defined(__MMgt_DLL) || defined(__OSD_DLL) || defined(__Plugin_DLL) || defined(__Quantity_DLL) || defined(__Resource_DLL) || defined(__SortTools_DLL) || defined(__StdFail_DLL) || defined(__Storage_DLL) || defined(__TColStd_DLL) || defined(__TCollection_DLL) || defined(__TShort_DLL) || defined(__Units_DLL) || defined(__UnitsAPI_DLL) || defined(__Dico_DLL)
|
||||||
# define __Standard_API Standard_EXPORT
|
# define __Standard_API Standard_EXPORT
|
||||||
# define __Standard_APIEXTERN Standard_EXPORTEXTERN
|
# define __Standard_APIEXTERN Standard_EXPORTEXTERN
|
||||||
# else
|
# else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user