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++语句中,<>代码> * 是——使复制成为转换过程的一部分(每当您进行值转换时,它就会发生)。实际上,您无法将对象就地转换为其他类型。