【发布时间】:2016-08-25 15:10:45
【问题描述】:
在没有垃圾收集器指针的任何编程语言中我都可以做到
DrawLine(new Vector(0, 0), new Vector(100, 100));
但在 C++ 中,如果 DrawLine 不负责删除它的参数,我们就不能这样做,因此使用两个向量 (0,0) 和 (100,100) 调用 DrawLine 的最短方法是:
Vector v(0, 0);
Vector w(100, 100);
DrawLine(v, w);
有没有办法把它变成一个单一的语句?特别是如果v 和w 只是该单个函数的参数并且没有其他函数使用它,这似乎有点冗长。为什么我不能这样做:
DrawLine(Vector(0, 0), Vector(100, 100));
【问题讨论】:
-
"为什么我不能这样做:
DrawLine(Vector(0, 0), Vector(100, 100));" 因为DrawLine愚蠢到需要左值或编译器坏了? -
行do works。 你不能这样做的另一种情况是它在你的编码约定中被禁止。
-
@MikeCAT,谢谢!你是对的,它确实可以编译!
标签: c++ heap-memory stack-memory