注册 登录
编程论坛 C++教室

还有这种写法吗

后卿 发布于 2023-04-26 18:48, 96 次点击
程序代码:

class T
{
public:
    char* p;
}
operator void*()
{
    return p;
}
T t1{"123"};
if(t1) std::cout<<"非空字符串"

这个operator还能重载void吗?请问这个重载是个啥逻辑?
ti的类型为空,即void ,就返回p吗?是这个意思吗?
3 回复
#2
rjsp2023-04-26 20:56
就是重载 类型转换 函数,没什么好说的

但具体到代码中所示的用法,已被 explicit operator bool() 所取代
#3
后卿2023-04-27 08:24
回复 2楼 rjsp
好的非常感谢您
#4
rjsp2023-04-27 11:35
《The Safe Bool Idiom》
https://zhuanlan.
1