1、一种类似于指针的类,可以和std::nullptr_t对象比较
2、满足:
相等比较(operator==)
默认构造
copy构造
copy赋值
析构
可以作为bool条件表达式使用。空值返回false,否则返回true
不抛出异常
class nullPointer final
{
public:
nullPointer(const std::nullptr_t vl = nullptr) noexcept :id(0)
{
}
nullPointer(const nullPointer& oth) noexcept
{
this->id = oth.id;
}
nullPointer& operator=(const nullPointer& oth) noexcept
{
this->id = oth.id;
return *this;
}
~nullPointer() noexcept
{
}
operator bool() noexcept
{
return this->id != 0;
}
bool operator!() noexcept
{
return this->id == 0;
}
friend bool operator==(const nullPointer lft, const nullPointer rgt) noexcept
{
return lft.id == rgt.id;
}
friend bool operator!=(const nullPointer lft, const nullPointer rgt) noexcept
{
return !(lft == rgt);
}
private:
int id;
};