Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Error C3830
Collapse the table of content
Expand the table of content

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 (C++ Component Extensions).

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:
© 2015 Microsoft