来自维基的代码:
const class nullptr_t
{
public:
template<class T>
inline operator T*() const //隐式转化
{ return 0; }
template<class C, class T> //隐式转化
inline operator T C::*() const
{ return 0; }
private:
void operator&() const; //禁止&操作
} nullptr = {};
其中注意nullptr是一个类常量对象;
class A
{
public:
int a;
};
int *p = mynullptr;
int A::*a = mynullptr;
定义了两个public隐式转换函数。
template<class C, class T> //隐式转化
inline operator T C::*() const
{ return 0; }