c++在将变量传递给函数时声明变量

标签 c++ class variables

我来自 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/

相关文章:

Java-使用扫描仪并将变量传递给其他方法

c++ - 在 C++ 中通过值传递还是通过引用传递到 const 更好?

c++ - 未知的动态类型转换

c++ - 我可以传递从模板类继承的对象类吗?

c++ - C++ 编译器(或链接器?)如何知道如何处理 cpp 和头文件?

Haskell 记录语法和类型类

C++ ifstream 在不存在文件时工作,在存在文件时不工作

c++ - for循环在大数字上崩溃

c++ - 执行一次类代码 C++

variables - 剧本中的ansible-container变量