为自己的流类重载插入操作符

Insertion operator overloading for own stream class

本文关键字:插入 操作符 重载 自己的      更新时间:2023-10-16

在c++书籍中,我遇到了关于如何重载插入操作符以将数据放入std::ostream的描述。但是当我研究neoengine源码时,我遇到了这样的代码:

File &File::operator << ( const char *pszData )
{
    if( m_bBinary )
        do m_pkStream->write( pszData, 1 ); while( *pszData++ );
    else
        *m_pkStream << pszData;
    return( *this );
}

可以看到,没有std::ostream使用。我不确定它是否符合c++的标准。我在哪里可以找到任何官方或严肃的文档或一些c++书籍,其中编写的代码如上所示是正确的?也就是说,它是正确的重载插入操作符为自己的流类?提前感谢!

允许重载用户定义类的操作符,如File

是否总是一个好主意,是一个意见的问题。