Я пытаюсь написать некоторый код для оптимизации некоторых функций Open GL для программы, которую пишу, к сожалению, я не совсем ветеран C или C ++, но отчасти поэтому я делаю этот проект!
Итак, я создаю структуру для обработки матриц 3х3 и определяю структуру следующим образом:
#ifndef MATRIX3BY3_H
#define MATRIX3BY3_H
struct Matrix3by3
{
float ix, jx, kx;
float iy, jy, ky;
float iz, jz, kz;
Matrix3by3() {}
Matrix3by3(const Matrix3by3 &matrix)
{
ix = matrix.ix;
jx = matrix.jx;
kx = matrix.kx;
iy = matrix.iy;
jy = matrix.jy;
ky = matrix.ky;
iz = matrix.iz;
jz = matrix.jz;
kz = matrix.kz;
}
Matrix3by3 (const float _ix, const float _jx, const float _kx,
const float _iy, const float _jy, const float _ky,
const float _iz, const float _jz, const float _kz) :
ix(_ix), jx(_jx), kx(_kx),
iy(_iy), jy(_jy), ky(_ky),
iy(_iz), jx(_jz), kz(_kz) {}
};
#endif
И я получаю ошибку (дважды)
Ожидаетсяспецификатор-список-спецификатор перед 'Matrix3by3'
В строке первого конструктора.Я попытался найти ответы на эти вопросы, и, похоже, это связано с тем, что компилятор не знает, что это тип.Итак, я попробовал следующее, я уберу внутренности для краткости:
typedef struct Matrix3by3 { ... };
struct Matrix3by3 { struct Matrix3by3() {} ... };
struct Matrix3by3 { ... } Matrix3by3;
typdef struct Matrix3by3;
struct Matrix3by3 { ... };
Какие решения были предложеныв блогах и статьях, которые я видел по этой ошибке.Я также видел, что это может возникнуть из-за циклической зависимости, но в этом файле нет включений, включающих что-либо еще, и я даже удалил их, просто чтобы быть уверенными время от времени - без изменений.
IЯ мог бы написать это в классе Objective-C, я уверен, но это, вероятно, потребует чуть больше памяти и циклов, и это именно то, чего я пытаюсь избежать.Единственное, о чем я могу подумать, это некоторые настройки компилятора / проекта, которые я установил по умолчанию, что препятствует использованию такого типа структуры.Вполне возможно, так как я изучаю язык / среду.
Может ли кто-нибудь помочь?
Спасибо!