【发布时间】:2014-01-11 06:42:27
【问题描述】:
我在我正在研究的来源中看到这条线,但似乎找不到与“变量后的星号”或“星号前的变量”相关的任何内容。什么意思?
GameDrawer* gameDrawer;
GameDrawer 也用作函数和类的名称。
【问题讨论】:
-
这不是 OpenGL 特定的;它是基本的 C/C++ 语法。你是如何使用 C++ 的,到了把 OpenGL 弄得乱七八糟的地步,之前没有见过指针?
-
我刚刚浏览了 C++ 教程。我已经看到了指针是如何声明的,但只是被声明为一种类型。 int, char, "int * GameDrawer;"等等等等。第一次遇到“指向类的指针”,使该类成为有效的“类型”。
-
由于 GLSL 不支持指针或运算符重载,如果您在 OpenGL 中看到这一点,则意味着将
GameDrawer乘以gameDrawer。我不得不想象,这是某种形式的 C 代码,与 OpenGL 或其类 C 语言 (GLSL) 无关。 -
@CodeSeven:在 C++ 中,类是类型。一旦定义为一个类,
GameDrawer几乎等同于int;您可以拥有该类型的变量,具有指向它的实例的指针和引用,将其用作模板中的类型参数等等等。您不能做的就是(1)将其用作枚举的基础类型, 和 (2)memcpy它的实例围绕着任性。 (实际上,在某些情况下,您甚至可以使用所谓的“可简单复制”类型执行 (2)。但在您了解“可简单复制”的含义之前,假设您不能这样做会更安全。)
标签: function class pointers opengl