Kein geeigneter Standardkonstruktor verfügbar?

Hab ich einen eigenartigen Fehler beim schreiben auf C++/CLI code. Ich versuche eine Kopie zu machen von einer Klasse, die einige Daten enthält.

Die Klasse definiert ist als:

public ref class RawDataPacket
{
protected:
    float* m_internalData;

public:
    RawDataPacket(const float* newInternalData);
    RawDataPacket(const RawDataPacket^ rdp);
    RawDataPacket(RawDataPacket^ rdp);
    RawDataPacket();
};

Wenn ich versuchen und verwenden Sie die Klasse wie folgt:

void SomeClass::SomeFunction( RawDataPacket^ rdp )
{
    //Send a copy of the packet to anyone interested.
    RawDataPacket^ rdp1 = gcnew RawDataPacket( rdp );
    ForwardData( rdp1 );
}

Bekomme ich:

error C2512: 'RawDataPacket' : no appropriate default constructor available

Dachte ich, dass RawDataPacket(); hatte, dass Sie gedeckt? ..oder bin ich etwas fehlt offensichtlich wirklich dort?

[Bearbeiten] Der Körper RawDataPacket() sieht wie folgt aus:

RawDataPacket::RawDataPacket()
{
    m_internalData = nullptr;
}

[Edit2] Die full compiler output sieht wie folgt aus:

1>------ Build started: Project: MySoftware, Configuration: Debug Win32 ------
1>Compiling...
1>RawDataPacket.cpp
1>Controller.cpp
1>.\Controller.cpp(452) : error C2512: 'MySoftware::RawDataPacket' : no appropriate default constructor available
1>Build log was saved at "file://c:\Projects\Experiments\MySoftware\Debug\BuildLog.htm"
1>MySoftware - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
ist der Körper von RawDataPacket() beenden?
Es sieht für mich so, als wenn, dass sollte eine "angemessene Standard-Konstruktor"... Aber das ist nicht der Konstruktor, die Sie mit in die Zeit. Wenn Sie eine Step-In, geht es dann in eine Ihrer contstructors und werfen Sie dann der Fehler? oder ist es einfach zu werfen, dass die Fehlermeldung auf die Zeile, in der SomeClass::SomeFunction Funktion?

InformationsquelleAutor Jon Cage | 2009-12-15

Schreibe einen Kommentar