我来自 c# 的世界,允许做这样的事情。当我在 C++ 中尝试它时,我没有得到编译器错误,但我不相信它真的有效。
所以对于更有经验的人,你可以做这样的事情:
Entity->SetPosition(Vector2(200, 400));
因为在 Vector2 是一个类,并且设置位置的参数需要一个 vector ?这是允许的还是我需要像这样预初始化变量:
Vector2 aVector(200, 400);
Entity->SetPosition(aVector);
谢谢
大卫
最佳答案
Entity->SetPosition(Vector2(200, 400));
如果您将
SetPosition
定义为以下之一,则很好(并且更可取):void SetPosition(Vector2 const & v); //Okay : const reference
void SetPosition(Vector2 v); //okay : value
也就是说,
SetPosition
接受参数作为 const
引用,或者简单地作为值。但这行不通:
void SetPosition(Vector2 & v); //not okay : non-const reference
——
在 C++11 中,你可以只写这个(假设你已经实现了
Vector2
到 enable this behavior ):Entity->SetPosition({200, 400});
感谢@Simon 指出这一点。
关于c++在将变量传递给函数时声明变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11446386/