我来自 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
reference,或者简单地作为 value。
但这行不通:
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/