Ich habe eine C++/CLI-Klasse wie folgt aus:IntelliSense-Fehler: eine Referenz kann nicht an ein Initonly-Feld gebunden werden?
// MyClass.h
#pragma once
namespace MyNamespace {
using namespace System;
public ref class MyClass {
private:
MyClass();
IntPtr m_ptr;
};
}
// MyClass.cpp
#include "MyClass.h"
using namespace System;
namespace MyNamespace {
MyClass::MyClass() {
m_ptr = IntPtr::Zero;
}
}
Das Projekt kompiliert ohne Fehler oder Warnungen, aber die Linie m_ptr = IntPtr::Zero
mit einem IntelliSense Fehler immer rot unterstrichen: „ein Verweis nicht auf eine initonly Feld gebunden werden kann ". Was gibt? Wie kann ich das loswerden?
Dies ist in Visual Studio 2012 Premium Edition, aber das Platform Toolset ist Visual Studio 2008 (v90).
Sind Zeigerfelder (nicht IntPtr, echte Zeiger) auch Null-initialisiert? – Asik
Ja, sie sind in dieser Hinsicht nicht besonders. –