"this" 指针上的 C++ 关键字运算符
C++ keyword operator on "this" pointer
努力理解我在开源代码中 运行 遇到的这种语法:
/// 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" 指针更改对象的类型。但这似乎是通过操作员完成的?无法找到涉及关键字 "this" 的良好网络搜索。寻找有关如何使用 "operator" 的参考或解释。 C++ 运算符的网络搜索不会导致这样的事情,我到目前为止已经找到了。
不要想太多在这里使用this
; *this
仅表示 "the current object",因此程序员使用 shorthand 来描述运算符的作用。
事实上,与任何 conversion operator 一样,它获取当前对象并提供一种方法将其转换为不同的类型。
努力理解我在开源代码中 运行 遇到的这种语法:
/// 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" 指针更改对象的类型。但这似乎是通过操作员完成的?无法找到涉及关键字 "this" 的良好网络搜索。寻找有关如何使用 "operator" 的参考或解释。 C++ 运算符的网络搜索不会导致这样的事情,我到目前为止已经找到了。
不要想太多在这里使用this
; *this
仅表示 "the current object",因此程序员使用 shorthand 来描述运算符的作用。
事实上,与任何 conversion operator 一样,它获取当前对象并提供一种方法将其转换为不同的类型。