调用一个函数并将其设置为等于结构

时间:2018-02-28 04:48:37

标签: c++ syntax

有人可以解释第12行的内容吗?如何设置一个等于结构(矩阵)的函数;

mat4& getCurrentMatrix() { 
    if(currentMatrixMode == MGL_PROJECTION) {
         return projMatrix;
    }
    else { //Not sure if we need to account for MGL_TEXTURE or MGL_COLOR 
           //yet
        return modelViewMatrix;
    }
}

void setCurrentMatrix(mat4 matrix) {
    getCurrentMatrix() = matrix; //what is going on in here?

}

2 个答案:

答案 0 :(得分:2)

您未设置与其他对象相同的功能,您需要将某个功能的结果分配给另一个对象。

如果函数返回一些对象或值(但没有引用),则它没有任何有用的效果(除非mat4运算符被副作用覆盖!),例如用C语言。

但是在C ++中,您可以返回全局/更高范围对象的引用

它做了一些有用的事情,因为该函数返回一些全局/更高范围对象的引用,因此它等同于:

=

modelViewMatrix = matrix;

取决于函数的参数

答案 1 :(得分:0)

With NewMail .Subject = "copy graph and text - Auto" .To = "meme@xxx.com; reciep1@xxx.com; reciept2@xxx.com" .Attachments.Add ChartName, olByValue, 0 .Attachments.Add ChartName1, olByValue, 0 .HTMLBody = "<body>" & RangetoHTML(Rng) & _ "<img src=" & "'" & ChartName1 & "'>" & _ "<img src=" & "'" & ChartName & "'> </body>" .Display End With 函数返回对getCurrentMatrix的引用。参考引用的是mat4,它被设置为等于传递给函数的矩阵。