Compiler Error C3830
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Error C3830.
type1': cannot inherit from 'type2', value types can only inherit from interface classes
A value type cannot inherit a base class. For more information, see Classes and Structs.
The following sample generates C3830:
// C3830a.cpp
// compile with: /clr /c
public value struct MyStruct4 {
int i;
};
public value class MyClass : public MyStruct4 {}; // C3830
// OK
public interface struct MyInterface4 {
void i();
};
public value class MyClass2 : public MyInterface4 {
public:
virtual void i(){}
};
Managed Extensions for C++
A __value type cannot inherit a base class.
The following sample generates C3830:
// C3830b.cpp
// compile with: /clr:oldSyntax /c
#using <mscorlib.dll>
__value struct v : public System::Object {}; // C3830
__value struct w {}; // OK
Show: