C++ C++;“上的关键字运算符”;这";指针

C++ C++;“上的关键字运算符”;这";指针,c++,this,operator-keyword,C++,This,Operator Keyword,难以理解我在开源代码中遇到的这种语法: /// cast *this into an gpstk::RinexNavData. /// @throw if the record is invalid or not an ephemeris (isNav()==false) operator RinexNavData() throw(gpstk::Exception); /// cast *this into a gpstk::RinexObsData /// @throw if the rec

难以理解我在开源代码中遇到的这种语法:

/// cast *this into an gpstk::RinexNavData.
/// @throw if the record is invalid or not an ephemeris (isNav()==false)
operator RinexNavData() throw(gpstk::Exception);

/// cast *this into a gpstk::RinexObsData
/// @throw if the record is invalid or not an observation (isObs()==false)
operator RinexObsData() throw(gpstk::Exception);

如果我正确解释了注释,那么它就是通过“this”指针更改对象的类型。但这似乎是通过操作员完成的?不能在一个好的网页搜索,涉及关键字“这”。正在寻找有关“operator”如何使用的参考或解释。C++操作员的Web搜索不会导致这样的结果,我发现到现在为止。

< P>不要过度考虑使用<代码> < <代码> >;代码>*此仅表示“当前对象”,因此程序员使用速记来描述操作员的操作


事实上,与任何类型一样,它接受当前对象,并提供将其转换为不同类型的方法。

不要在这里过多地考虑使用
this
<代码>*此仅表示“当前对象”,因此程序员使用速记来描述操作员的操作


事实上,与其他类型一样,它接受当前对象并提供将其转换为不同类型的方法。

Perfect。谢谢。这是一个非常详尽的关于运算符重载的问答:你也会找到一个关于转换运算符的部分,我不是说“这个”,而是………………弗莱姆:我认为你的答案是好的,并给出了一个有用的例子-你会考虑不删除它吗?完美。谢谢。这是一个非常详尽的关于运算符重载的问答:你也会找到一个关于转换运算符的部分,我不是说“这个”,但是………………弗莱姆:我认为你的答案是好的,并给出了一个有用的例子。你会考虑不删除它吗?小NITPICK:<代码>这个< /代码>没有被转换。通过cast操作符创建了一个新对象(从
this
),但我希望
this
保持不变。这反过来又引出了一个问题,为什么操作符没有标记为
const
,但这是一个新的讨论。@UlrichEckhardt:
这个
肯定没有转换。但是,在C++语句中,<>代码> * 是——使复制成为转换过程的一部分(每当您进行值转换时,它就会发生)。实际上,您无法就地将对象转换为其他类型。次要挑剔:
未转换。通过cast操作符创建了一个新对象(从
this
),但我希望
this
保持不变。这反过来又引出了一个问题,为什么操作符没有标记为
const
,但这是一个新的讨论。@UlrichEckhardt:
这个
肯定没有转换。但是,在C++语句中,<>代码> * 是——使复制成为转换过程的一部分(每当您进行值转换时,它就会发生)。实际上,您无法将对象就地转换为其他类型。