函数返回值的引用

时间:2013-05-09 12:40:56

标签: c++

假设我有类似的东西

  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而不是参考。任何想法我怎么能避免这个?

1 个答案:

答案 0 :(得分:2)

如果要完全封装handle_,请将局部变量传递给glGenBuffers

GLuint handle;
glGenBuffers(1, &handle);
SetHandle(handle);