gpt4 book ai didi

c++ - 为什么 operator-> 重载在 VC2010 中不起作用?

转载 作者:搜寻专家 更新时间:2023-10-31 01:14:39 24 4
gpt4 key购买 nike

class A
{
public:
A* operator->() const
{
}
void Test() {}
};

然后这样调用它。

A* a = new A;
a->Test();

代码在 VC2010 中构建并成功运行。这似乎很奇怪。我想知道这是设计使然还是 VC2010 的错误?

谢谢

最佳答案

您没有在您的示例中调用您的 operator->,您是直接从 A* 调用 Test。你想要:

(*a)->Test();

或者...

A a;
a->Test();

VS2010 在 operator-> 方面没有任何问题(据我所知)。

在名为 a 的指针上使用 -> 有效地执行:(*a).。按值对变量使用 -> 将调用您的 operator->(如果存在),或者如果没有 operator-> 则会出现语法错误.

关于c++ - 为什么 operator-> 重载在 VC2010 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054772/

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