J'ai deux classes, Mesh et MeshList. Je veux MeshList d'avoir une fonction qui permet de changer les membres privés de la Maille. Mais il ne compile pas et je ne sais pas pourquoi. Voici mon code.
Maillage.h
#ifndef _MESH_H
#define _MESH_H
#include "MeshList.h"
#include <iostream>
class Mesh
{
private:
unsigned int vboHandle_;
friend void MeshList::UpdateVBOHandle();
public:
inline void Out() {std::cout << vboHandle_;}
};
#endif
Mesh.cpp
#include "Mesh.h"
MeshList.h
#ifndef _MESH_LIST_H
#define _MESH_LIST_H
#include "Mesh.h"
class MeshList
{
public:
Mesh *mesh; //Line 11 Error
void UpdateVBOHandle();
};
#endif
MeshList.cpp
#include "MeshList.h"
void MeshList::UpdateVBOHandle()
{
*mesh->vboHandle_ = 4;
}
J'obtiens ces erreurs:
MeshList.h (Ligne 11)
- error C2143: erreur de syntaxe : manquant ';' avant '*'
- error C4430: spécificateur de type manquant - int assumé. Remarque: C++ ne prend pas en par défaut-int
error C4430: spécificateur de type manquant - int assumé. Remarque: C++ ne prend pas en par défaut-int
maillage.h(11) : erreur C2653: 'MeshList": n'est pas une classe ou d'un espace de noms nom
- meshlist.cpp(5) : erreur C2248: 'Mesh::vboHandle_' : ne peut pas accéder membre privé déclarée dans la classe 'Mesh'
- maillage.h(10) : voir la déclaration de 'Mesh::vboHandle_'
- maillage.h(8) : voir la déclaration de 'Mesh'
- meshlist.cpp(5) : erreur C2100: illégal d'indirection