c++ - 输入流在运算符中的目的 >> 重载

标签 c++ overloading operator-keyword

istream & operator >>(istream & input, CustomLong & longi)
{
    string inputstring;

    input >> inputstring;

    vector<long> trans;

    for (int i = 0; i<inputstring.length(); ++i)
    {
        trans.push_back((long)(str.at(i)-'0'));

    }

    (longi.classVec) = trans; // assign vector to the class variable

    return input; //works fine without it

}

我注意到即使我们不返回输入该方法也能正常工作,如果我们不返回输入会不会出现什么问题?如果它什么都不做,我宁愿不放它,因为它使用了不必要的资源。

最佳答案

该方法本身可能工作正常,但如果您链接插入器,它就不会。

std::cout << thisCustomLong << std::endl;  

会失败。

编辑:返回值也不会“使用额外资源”来定义术语的任何实际定义。避免微优化您的程序(我经常在系统上工作,每秒处理超过一千万个事务(是的,我的小数点是正确的)),我不会担心像这样的方法返回一个值。

关于c++ - 输入流在运算符中的目的 >> 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184791/

相关文章:

c++ - 当我启动新进程时,如何使旧的 Linux 进程实例退出?

c++ - 如果我将基类的 this 指针转换为派生类型,它是否安全且定义良好?

c++ - 在 boost::gil 中读取图像和访问字节

c++ - 小于运算符不能作为成员函数重载

java - && 和 || 的优先级java中的运算符

c++ - 内存块类在溢出后给出一个数字,为​​什么以及如何?

c++ - 为什么这是 gcc 中的 "overloading ambiguity"?

c++ - void 和非 void 返回函数的完美转发

c++ - 我可以像这样使用条件运算符吗?

c++ - 运算符重载意外结果