Compiler Warning C4687


For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

'class': a sealed abstract class cannot implement an interface 'interface'

A sealed, abstract type is typically only useful to hold static member functions.

For more information, see abstractand sealed.

C4687 is issued as an error by default. You can suppress C4687 with the warning pragma. If you are certain that you want to implement an interface in a sealed, abstract type, you can suppress C4687.

The following sample generates C4687.

// C4687.cpp  
// compile with: /clr /c  
interface class A {};  
ref struct B sealed abstract : A {};   // C4687  
ref struct C sealed : A {};   // OK  
ref struct D abstract : A {};   // OK