operator T * () {return v;}

operator T*() {return v;}


这是TriMesh的 Vec.h 文件中的一个运算符重载。 这里的operator不是(), 而是T * ()。 通过下面这个例子来说明其用途:

 TriMesh中的Color类继承自Vec<3,float>, 因此也是Vec

Color  color = red(); //red() returns the red color

glColor3fv(color); //right!


 

这里传进color后实际上经过了一次运算符重载的调用, 调用的是 operator const T* () const {return v;} .

Vec.h 里面类似的运算符有:

 

operator const T * () const
  { return v; }
operator const T * ()
  { return v; }
operator T * ()
  { return v; }

 
实际上在XForm.h中也有类似的函数。 
 

 

转载于:https://www.cnblogs.com/seckcoder/archive/2011/08/27/2155761.html

你可能感兴趣的:(operator T * () {return v;})