我不记得它叫什么了,但我知道我可以在 Java 中做到这一点。假设我有以下内容:
class Foo
{
public:
Foo() {};
void bar() {};
};
我想做这个:
int main() {
(new Foo).bar();
}
但这似乎不起作用。有没有类似的方法可以做到这一点而不必这样做:
int main() {
Foo foobar;
foobar.bar();
}
我不记得它叫什么了,但我知道我可以在 Java 中做到这一点。假设我有以下内容:
class Foo
{
public:
Foo() {};
void bar() {};
};
我想做这个:
int main() {
(new Foo).bar();
}
但这似乎不起作用。有没有类似的方法可以做到这一点而不必这样做:
int main() {
Foo foobar;
foobar.bar();
}
new
动态分配内存并返回一个指针。类成员是使用间接运算符获得的->
。我认为这不是您要寻找的东西,因为您冒着导致内存泄漏的风险。简单地调用 的构造函数就Foo
可以让我们做我们想做的事:
Foo().bar();
通过调用 的构造函数Foo
,我们创建了一个临时对象,我们可以从中获取它的数据成员。这比指针更可取,因为我们不必处理内存泄漏和指针删除。
你可以说(new Foo)->bar();
。这行得通,但绝对是愚蠢的。正确的是:
int main()
{
Foo x;
x.bar();
}
或者,如果您不想要局部变量:Foo().bar();
. 但现在这是有问题的,因为如果你不需要Foo
有状态,那么你可能根本不需要一个类。只需创建bar
一个免费函数(Java 中不存在的东西):
void bar();
int main()
{
bar();
}
是的,Foo().bar();
。无需new
像在 Java 中那样使用。