C++ 函数返回值的引用
假设我有这样的东西C++ 函数返回值的引用,c++,C++,假设我有这样的东西 class HandleInterface { GLuint handle_; protected: void SetHandle( GLuint i ) { handle_ = i; } public: GLuint GetHandle() const { return handle_; } virtual
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_ );
我是否需要为我的句柄
编写另一个getter?或者如何从我的getter方法中获取handle\uu
的引用
另外,
glGenBuffers
以某种方式违反了我的SetHandle
方法,因为它应该只通过SetHandle
方法而不是通过引用来设置handle。有什么办法可以避免这种情况吗?如果您想保持句柄
完全封装,请将一个局部变量传递给glGenBuffers
:
GLuint handle;
glGenBuffers(1, &handle);
SetHandle(handle);
你有什么真正的理由使用getter和setter吗?是否有(或将有)一些不变量需要维护?现在看起来不像。不,我只是认为getter和setter是很好的练习,但目前我相信在这里使用getter和setter可能不是最好的主意