私は現在、OpenGLを使用していくつかのコードを実装しています。さまざまなOpenGLクラスのラッパーを作成しました。特に、頂点配列バッファまたは要素配列バッファを表すバッファクラスがあります。これを行うには、私はそうのようなヘッダーで私のクラスを宣言:私のレンダラクラスでC++別のクラスの列挙を正しく使用する
Buffer.h
namespace FE { namespace GL {
enum BufferType {
ARRAY = GL_ARRAY_BUFFER,
ELEMENT = GL_ELEMENT_ARRAY_BUFFER
};
class Buffer {
public:
Buffer(BufferType type);
... rest of class ...
};
}
、私はクラスのメンバとして、いくつかのバッファをインスタンス化しよう:何らかの理由で
Renderer.h
...
#include "../GL/Buffer.h"
namespace FE { namespace Render {
class Renderer {
...
private:
GL::Buffer vbo(GL::BufferType::ARRAY);
GL::Buffer element(GL::BufferType::ELEMENT);
};
}}
、使用しようとしますこのようにenumを指定すると、「構文エラー:識別子 'ELEMENT'」というエラーが表示されます。 Intellisenseは、 "定数:FE :: GL :: ELEMENT 'は型名ではないことを警告しています。
これはなぜ私のバッファ関連のコードをテストしている間、私は(スコープ演算子で列挙型の値にアクセスして)同様の方法でバッファを作成したように動作しないのか分かりません。
この問題を解決する方法については、ご了承ください。
'vbo'と' element'データメンバを初期化しようとしていますか、 'vbo'と' element'メンバ関数を作成しようとしていますか? –
メンバー関数ではなくデータメンバーを作成しようとしています。 –
ああ、あなたが何を得ているのか分かります。 'GL ::バッファvbo = GL ::バッファ(GL :: ARRAY);' ありがとうございました! –