假设我有类似的东西
class HandleInterface {
GLuint handle_;
protected:
void SetHandle( GLuint i ) {
handle_ = i;
}
public:
GLuint GetHandle() const {
return handle_;
}
virtual ~HandleInterface() {}
};
现在我需要句柄_的引用。
// I would need &handle_
glGenBuffers( 1,&handle_ );
我是否需要为handle_
写另一个吸气剂?或者如何从我的getter方法中获取handle_
的引用?
同样glGenBuffers
违反了我的SetHandle
方法,因为它应该只通过handle_
方法设置SetHandle
而不是参考。任何想法我怎么能避免这个?
答案 0 :(得分:2)
如果要完全封装handle_
,请将局部变量传递给glGenBuffers
:
GLuint handle;
glGenBuffers(1, &handle);
SetHandle(handle);