簡體   English   中英

重載 >> 堆棧列表的運算符 class

[英]overloading >> operator for stack list class

LongInt i1; 

cin >> i1;

其中 LongInt 是一個 class,它包含一個整數棧。 我想將輸入存儲到 class 中的堆棧中,我認為這意味着我必須在我的 class 文件中重載 >> 運算符。 問題是我不確定如何將像 cin >> "111343241" 這樣的輸入逐位推入堆棧。 我將如何進行這項工作?

要重載運算符本身,實現 get 循環,定義一個命名空間范圍

std::istream& operator >>(std::istream& is, LongInt& li) {
    char c;
    while( is.get(c).good() ) {
        if( !std::isdigit(c) ) {
             is.unget();
             break;
        }

        ...push it to li
    }

    return is;
}

如何將單個數字推送到 LongInt 取決於您對 LongInt 的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM