【发布时间】:2014-05-28 14:11:09
【问题描述】:
在 Java 中
nodes[i] = new Object();
是一个有效的陈述
什么是 C++ 等价物?
编辑:
看来我没有提供足够的上下文。
我正在阅读一些实现 QuadTree 的 Java 代码,我很好奇如何用 C++ 重写该代码段。
我不需要 直接 等价物,我想要的东西本质上意味着相同的东西。
在 Java 中,你可以做类似的事情
class A
{
public A (someObject o);
}
主要方法:
A aObject = new A(new someObject());
或在循环中:
for(int i = 0; i < arr.length; i++)
{
arr[i] = new someObject();
}
在 C++ 中我知道你可以做到:
std::vector<someObject*> arr;
someObject* o = new someObject;
arr.push_back(o);
是否有类似于 java 的 new Object(); 在 C++ 中无需显式声明即可创建对象的风格?
【问题讨论】:
-
没有直接的等价物。这取决于您要在
nodes中存储的内容。 -
正确学习 C++,不要使用 Java 作为编写 C++ 代码的指南。寻找“等价物”只会导致编写糟糕的 C++ 代码。
-
@PaulMcKenzie ...除非这是将代码从 Java 转换为 C++ 的问题。不知道上下文很难说。
-
@Spook 从一种语言“翻译”到另一种语言是没有意义的。尤其是在没有直接翻译的情况下。
-
@juanchopanza 是吗?互联网上有很多 Java 示例算法实现,我不得不将它们翻译成 C++。如果你真的,真的需要直接翻译,IMO,只需实现一个基础
Object类,你'很好去。
标签: c++ arrays object new-operator