首頁 >後端開發 >C++ >為什麼'std::endl”在重載`時會導致'未知類型”錯誤

為什麼'std::endl”在重載`時會導致'未知類型”錯誤

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 04:40:11868瀏覽

Why Does

克服運算子中的「s​​td::endl 屬於未知型別」錯誤

運算子重載是C 中的一格數項強大技術,允許自訂資料類型為「

使用「my_stream

在「std::cout」中,運算子「

為“MyStream”實作自訂 endl

引入一個名為“的新成員函數” endl”進入“MyStream”,其簽章與運算子“

匹配標準EndLine 簽章

支援“std” ::endl”,我們必須定義另一個“operator

範例程式碼:

#include <iostream>;

struct MyStream {
// ... (same as previous code)

// MyStream's custom endl
static MyStream&amp; endl(MyStream&amp; stream) {
// ... (same as previous code)
}

// Operator<< to accept std::endl
MyStream&amp; operator<<(StandardEndLine manip) {
// ... (same as previous code)
}
};

int main(void) {
MyStream stream;

// ... (same as previous code)
stream << MyStream::endl; // Call custom endl
stream << std::endl; // Call std::endl directly

return 0;
}

透過實作這些方法,我們現在可以使用「my_stream

以上是為什麼'std::endl”在重載`時會導致'未知類型”錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn