我正在为我的容器定义迭代器类型,当然我想要iterator
可转换为const_iterator
。但我不确定哪个更好/更可取:
中的转换运算符iterator
class iterator
{
operator const_iterator();
};
或非显式构造函数const_iterator
class iterator
{
// implementation
friend class iterator; // hard to avoid this
};
class const_iterator
{
const_iterator(iterator const &);
};
有没有什么指导方针更好?
作为基本规则:
几乎有never提供一个充分的理由隐式转换运算符;它总是优选 to use 转换构造函数。使用隐式转换运算符,您很少会发现它们在您不期望的情况下被调用,并造成不必要的混乱。
转换构造函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)