Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Reference (ref) types and value types can only be instantiated on the managed heap, not on the stack or on the native heap.
Example
Code
// mcppv2_ref_class2.cpp
// compile with: /clr
ref class MyClass {
public:
   int i;
   // nested class
   ref class MyClass2 {
   public:
      int i;
   };
   // nested interface
   interface struct MyInterface {
      void f();
   };
};
ref class MyClass2 : public MyClass::MyInterface {
public:
   virtual void f() {
      System::Console::WriteLine("test");
   }
};
public value struct MyStruct {
   void f() {
      System::Console::WriteLine("test");
   }   
};
int main() {
   // instantiate ref type on garbage-collected heap
   MyClass ^ p_MyClass = gcnew MyClass;
   p_MyClass -> i = 4;
   // instantiate value type on garbage-collected heap
   MyStruct ^ p_MyStruct = gcnew MyStruct;
   p_MyStruct -> f();
   // instantiate value type on the stack
   MyStruct p_MyStruct2;
   p_MyStruct2.f();
   // instantiate nested ref type on garbage-collected heap
   MyClass::MyClass2 ^ p_MyClass2 = gcnew MyClass::MyClass2;
   p_MyClass2 -> i = 5;
}
Output
test
test