Tengo dos clases, Mesh y MeshList. Quiero que MeshList tenga una función que pueda cambiar los miembros privados de Mesh. Pero no compilará y no sé por qué. Aquí está mi código.C++ no me deja hacer amigos
Mesh.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;
}
me sale estos errores:
MeshList.h (línea 11)
- error C2143: error de sintaxis: falta ';' antes de '*'
- error C4430: especificador de tipo faltante - int assume. Nota: C++ no apoyo error
default-int C4430: falta el especificador de tipo - int asumido. Nota: C++ no apoyo default-int
mesh.h (11): error C2653: 'MeshList': no es una clase o espacio de nombres nombre
- meshlist.cpp (5): error C2248 : 'Mesh :: vboHandle_': no se puede acceder miembro privado declarado en la clase 'malla'
- mesh.h (10): véase la declaración de 'Mesh :: vboHandle_'
- mesh.h (8): véase la declaración de 'Mesh'
- meshlist.cpp (5): error C2100: direccionamiento indirecto
Tienes que salir más. –
+1 solo por el título. –
Pruebe 'class Meshlist;' en lugar de '#include" MeshList.h "' – chris