Freigeben über

ein Member einer verwaltet-Klasse kann kein nicht-verwaltet-Klassentyp sein

Heinz Koeck 100 Zuverlässigkeitspunkte
2024-03-09T13:18:08.51+00:00

Ich möchte in der Form1 (ref Klasse) einen Vector definieren und initialisieren. Egal wo ich in der Klasse diesen Vector definiere bekomme ich vom Editor die Meldung: ein Member einer verwaltet-Klasse kann kein nicht-verwaltet-Klassentyp sein

Wie geht das?

lg heinz

Entwicklertechnologien | C++
Entwicklertechnologien | Visual Studio | Andere
0 Kommentare Keine Kommentare
{count} Stimmen

Akzeptierte Antwort
  1. Ivan Dragov (CONCENTRIX Corporation) 2,640 Zuverlässigkeitspunkte Externe Microsoft-Mitarbeiter
    2024-03-10T14:28:35.32+00:00

    Hallo Heinz,

    Du kannst eine verwaltete C++-Klasse nicht von einer nicht verwalteten C++-Klasse ableiten. Instanzen verwalteter Klassen werden durch Garbage Collection gesammelt und auf dem CLR-Heap erstellt. Instanzen nicht verwalteter Klassen werden auf dem nicht verwalteten Heap zugewiesen. Du kannst keine Klasse erstellen, dessen Daten teilweise auf dem verwalteten Heap und teilweise auf dem nicht verwalteten Heap liegen. Du solltest einen verwalteten Container über die nicht verwaltete Klasse wickeln und daraus Ableitungen vornehmen, wie hier empfohlen:

    Can you derive a Managed C++ class from an Unmanaged C++ class?

    Gruß,

    Ivan Dragov


0 zusätzliche Antworten

Sortieren nach: Am hilfreichsten

Ihre Antwort

Fragesteller*innen können Antworten als akzeptierte Antworten markiert werden, wodurch Benutzer*innen wissen, dass diese Antwort das Problem gelöst hat.