克服運算子中的「std::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& endl(MyStream& stream) { // ... (same as previous code) } // Operator<< to accept std::endl MyStream& 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中文網其他相關文章!