У меня странная ошибка при написании кода на C ++ / CLI. Я пытаюсь сделать копию класса, который содержит некоторые данные.
Класс определяется как:
public ref class RawDataPacket
{
protected:
float* m_internalData;
public:
RawDataPacket(const float* newInternalData);
RawDataPacket(const RawDataPacket^ rdp);
RawDataPacket(RawDataPacket^ rdp);
RawDataPacket();
};
Когда я пытаюсь использовать класс следующим образом:
void SomeClass::SomeFunction( RawDataPacket^ rdp )
{
// Send a copy of the packet to anyone interested.
RawDataPacket^ rdp1 = gcnew RawDataPacket( rdp );
ForwardData( rdp1 );
}
Я получаю:
error C2512: 'RawDataPacket' : no appropriate default constructor available
Я думал, что RawDataPacket();
это покрыло? ... или я что-то упускаю действительно очевидное?
[Редактировать] Тело RawDataPacket()
выглядит так:
RawDataPacket::RawDataPacket()
{
m_internalData = nullptr;
}
[Edit2] Полный вывод компилятора выглядит следующим образом:
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 ==========