gpt4 book ai didi

c++ - operator void* () 是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 18:07:56 25 4
gpt4 key购买 nike

我用谷歌搜索,但没有找到明确的答案。示例:

class Foo {
public:
operator void* () {
return ptr;
}

private:
void *ptr;
};

我了解什么是 void* operator()。上面的运算符在不同的语法中是同一件事吗?如果不是,那是什么?我如何使用该运算符获取 ptr

最佳答案

不,他们是两个不同的运营商。 operator void* 函数是一个类型转换函数,而 operator() 是一个函数调用运算符。

当您想将 Foo 的实例转换为 void* 时使用第一个,例如

Foo foo;
void* ptr = foo; // The compiler will call `operator void*` here

第二个用作函数:

Foo foo;
void* ptr = foo(); // The compiler calls `operator()` here

关于c++ - operator void* () 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215827/

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