我有两个类,Mesh 和 MeshList。我希望 MeshList 具有可以更改 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
网格.cpp
#include "Mesh.h"
网格列表.h
#ifndef _MESH_LIST_H
#define _MESH_LIST_H
#include "Mesh.h"
class MeshList
{
public:
Mesh *mesh; //Line 11 Error
void UpdateVBOHandle();
};
#endif
网格列表.cpp
#include "MeshList.h"
void MeshList::UpdateVBOHandle()
{
*mesh->vboHandle_ = 4;
}
我收到这些错误:
MeshList.h(第 11 行)
- 错误 C2143:语法错误:缺少“;” 前 '*'
- 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数
错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数
mesh.h(11):错误 C2653:“MeshList”:不是类或命名空间名称
- meshlist.cpp(5):错误 C2248:“Mesh::vboHandle_”:无法访问在“Mesh”类中声明的私有成员
- mesh.h(10) : 参见 'Mesh::vboHandle_' 的声明
- mesh.h(8) : 参见“Mesh”的声明
- meshlist.cpp(5) : 错误 C2100: 非法间接