Следующий код является незаконным (Visual Studio 2012 Windows Phone (Создание Direct3D приложение Windows Phone))Почему свойства не быть публичным внутри класса исх запечатаны
a non-value type cannot have any public data members 'posX'
Заголовок
ref class Placement sealed
{
public:
Placement(
float rotX,
float rotY,
float rotZ,
float posX,
float posY,
float posZ
);
float rotX, rotY, rotZ, posX, posY, posZ;
};
Cpp
Placement::Placement(
float rotX,
float rotY,
float rotZ,
float posX,
float posY,
float posZ
)
: posX(posX),
posY(posY),
posZ(posZ)
{
this->rotX = static_cast<float>(rotX);
this->rotY = static_cast<float>(rotY);
this->rotZ = static_cast<float>(rotZ);
}
Почему и как мне установить свойства? Я привык к нормальному C++, а не C++ CX (я думаю, что это называется так?) ... Должен ли я создавать методы, которые обслуживают свойства?
* Эта проблема возникла из-за того, что я пытался создать нормальный класс и создать указатель на него, только для того, ref class вместо этого ... Я действительно не понимаю почему? *
Это как-то связано с WinRT или, более конкретно, с процессорами ARM?
Итак, мне нужно преобразовать все мои классы C++ для игры, которую я создал на рабочем столе, вместо этих классов ref и изменить allllll моих полей на свойства вместо этого? это именно то, что я должен делать для игр, которые «могут» использоваться на RT? – Jimmyt1988
Кстати, я пробовал этот код, и ему это не нравится. Он поставляется с ошибкой компиляции: ошибка C2144: синтаксическая ошибка: «float» должен предшествовать ';' – Jimmyt1988
Мне пришлось удалить запятые и переписать свойство float для каждого отдельного объекта. странно? – Jimmyt1988