J'essaie d'écrire du code pour optimiser certaines fonctions Open GL pour un programme que j'écris, malheureusement, je ne suis pas vraiment un vétéran C ou C++, mais c'est en partie pourquoi je fais ce projet!Erreur "spécificateur-qualificateur-liste attendu avant" au constructeur struct
Je suis la création d'une structure pour gérer les matrices 3x3 et je suis la définition de la struct comme suit:
#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
Et j'obtiens l'erreur (deux fois)
spécificateur-de qualifier- attendu liste avant 'Matrix3by3'
Sur la ligne du premier constructeur. J'ai essayé de chercher des réponses pour cela, et il semble que cela a à voir avec le compilateur ne sachant pas que c'est un type. J'ai donc essayé ce qui suit, je vais enlever les entrailles par souci de concision:
typedef struct Matrix3by3 { ... };
struct Matrix3by3 { struct Matrix3by3() {} ... };
struct Matrix3by3 { ... } Matrix3by3;
typdef struct Matrix3by3;
struct Matrix3by3 { ... };
Quelles sont les solutions qui ont été proposées sur les blogs et les articles que j'ai vus pour cette erreur. J'ai également vu que cela peut survenir à cause d'une dépendance circulaire, mais ce fichier n'a aucune inclusion qui inclut autre chose, et je les ai même supprimés juste pour être certain de temps en temps - pas de changement. Je pourrais écrire cela dans une classe d'objectifs-c, j'en suis sûr, mais il faudra probablement un peu plus de mémoire et de cycles, et c'est exactement ce que j'essaie d'éviter. La seule chose que je peux penser à gauche est un réglage de compilateur/projet que j'ai défini par défaut qui empêche mon utilisation de ce type de structure. Entièrement possible, car j'apprends la langue/l'environnement.
Quelqu'un peut-il fournir de l'aide?
Merci!
Ah oui, je vois ces erreurs. Avait été debout pendant un moment quand j'ai haché ça. La chose est, j'ai vu ce type de chose dans plusieurs autres endroits en regardant des exemples de développement iPhone. Donc je ne sais pas pourquoi ça marche là-bas (et même dans les exemples directement téléchargés) mais pas pour moi. Je suppose que c'est un paramètre du compilateur/projet dans xcode, mais je ne suis pas sûr de quoi. Ou je manque la structure équivalente de l'erreur de point-virgule – Kevek
Ah! J'ai pris un deuxième coup d'oeil et j'ai vu où je mettais le projet à compiler comme nom de fichier par défaut, pas à une langue spécifique. Changez-le en Objective-C++ et il a très bien été compilé. À votre avis, devrais-je faire un effort supplémentaire pour rester dans l'espace C et le faire différemment, ou est-ce que Objective-C++ va bien? – Kevek