c ++使用匿名对象调用函数导致编译器错误
c++ calling a function using anonymous object results compiler error
为什么下面的程序编译失败
#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;
}
访问此 link:http://ideone.com/qtCufW
在Java和C#中允许使用匿名对象调用成员方法,但为什么在C++中不允许?
请帮助我。
要修复语法错误,请将新表达式括起来
(new Test())->fun();
因为 new
和 ->
运算符的优先级意味着您的优先级被解析为
new (Test()->fun());
格式错误。
要修复内存泄漏,请停止使用 new
。您不再编写 Java 或 C#。
Test().fun();
为什么下面的程序编译失败
#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;
}
访问此 link:http://ideone.com/qtCufW
在Java和C#中允许使用匿名对象调用成员方法,但为什么在C++中不允许? 请帮助我。
要修复语法错误,请将新表达式括起来
(new Test())->fun();
因为 new
和 ->
运算符的优先级意味着您的优先级被解析为
new (Test()->fun());
格式错误。
要修复内存泄漏,请停止使用 new
。您不再编写 Java 或 C#。
Test().fun();