參考

2013-05-09 86 views
1

假設我有這樣的事情參考

class HandleInterface { 
     GLuint handle_; 
    protected: 
     void SetHandle(GLuint i) { 
      handle_ = i; 
     } 

    public: 
     GLuint GetHandle() const { 
      return handle_; 
     } 

     virtual ~HandleInterface() {} 
}; 

Buw現在我需要的handle_的參考。

// I would need &handle_ 
glGenBuffers(1,&handle_); 

我需要爲我的handle_寫另一個吸氣劑嗎?或者如何從我的getter方法中獲得handle_的引用?

而且glGenBuffers某種程度上侵犯了我的SetHandle方法,因爲它應該只設置handle_雖然SetHandle方法,而不是一個,雖然參考。任何想法如何我可以避免這一點?

+1

你有沒有真正的理由使用getter和setter?是否有(或將會)有一些你需要維護的不變量?它目前看起來不像。 – 2013-05-09 12:42:34

+0

不,我只是認爲getter和setter是很好的做法,但是現在我相信這裏可能不是使用getter和setter的怪獸想法 – 2013-05-09 12:43:44

回答

2

如果你想保持handle_完全封裝,通過一個局部變量來glGenBuffers

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