MeshとMeshListの2つのクラスがあります。MeshListにMeshのプライベートメンバーを変更できる関数が必要です。しかし、それはコンパイルされず、理由はわかりません。これが私のコードです。
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;
}
これらのエラーが発生します:
MeshList.h(11行目)
- エラーC2143:構文エラー:';'がありません 前 '*'
- エラーC4430:型指定子がありません-intと見なされます。注:C++はdefault-intをサポートしていません
エラーC4430:型指定子がありません-intと見なされます。注:C++はdefault-intをサポートしていません
mesh.h(11):エラーC2653:'MeshList':クラスまたは名前空間の名前ではありません
- meshlist.cpp(5):エラーC2248:'Mesh :: vboHandle_':クラス'Mesh'で宣言されたプライベートメンバーにアクセスできません
- mesh.h(10):「Mesh::vboHandle_」の宣言を参照してください
- mesh.h(8):「メッシュ」の宣言を参照してください
- meshlist.cpp(5):エラーC2100:不正な間接参照