我有两个类,Mesh和MeshList。我想让MeshList有一个可以改变Mesh的私有成员的函数。但它不会编译,我不知道为什么。这是我的代码。C++不会让我交朋友
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++不 支持默认int
mesh.h(11):错误C2653: 'MeshList':不是类或命名空间 名称
- meshlist.cpp(5):错误C2248 : '网:: vboHandle_':无法访问 私有成员在课堂上 '网'
- mesh.h声明(10):看的 '网:: vboHandle_'
- mesh.h声明(8):看到声明'Mesh'
- meshlist.cpp(5):错误C2100:非法间接寻址
你需要多出来。 – 2012-04-27 01:19:16
仅适用于标题。 – 2012-04-27 01:19:17
尝试'class Meshlist;'而不是'#include“MeshList.h”' – chris 2012-04-27 01:19:18