gpt4 book ai didi

c++使用匿名对象调用函数导致编译器错误

转载 作者:太空狗 更新时间:2023-10-29 23:39:50 25 4
gpt4 key购买 nike

为什么下面的程序编译失败。

#include <iostream>
using namespace std;
class Test
{
public:
void fun()
{
cout<<"fun() in Test\n";
}
};
int main() {
new Test()->fun();
// your code goes here
return 0;
}

访问此链接:http://ideone.com/qtCufW

在 Java 和 C# 中允许使用匿名对象调用成员方法,但为什么在 C++ 中不允许?请帮助我。

最佳答案

要修复语法错误,请将新表达式括起来

(new Test())->fun();

因为 new-> 操作符的优先级意味着你的被解析为

new (Test()->fun());

这是错误的。

要修复内存泄漏,请停止使用 new。您不再编写 Java 或 C#。

Test().fun();

关于c++使用匿名对象调用函数导致编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28349360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com