输入流在运算符中的目的>>超载

时间:2014-03-04 22:45:51

标签: 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

}

我注意到即使我们不返回输入,该方法也能正常工作,如果我们不返回输入会有任何问题吗?如果它没有做任何事情,我宁愿不把它,因为它使用不必要的资源。

1 个答案:

答案 0 :(得分:2)

该方法本身可以正常工作,但如果你是链接插入器,它不会。

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

会失败。

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