C 用過載輸出乙個類

2022-03-15 23:58:35 字數 1198 閱讀 6354

還記得剛開始學習c++時候,對於 cout 可以直接輸出各種型別的變數很好奇。

畢竟是大一剛學完c語言,知道如果要輸出什麼資料肯定是要指定型別輸出的 printf()。

對於c++中的乙個變數 string str,使用 cout 可以直接輸出string,

然而採用c中使用的 printf("%s「, str) 是絕對無法輸出該變數的。因為 這裡的 str 是

乙個 class。而不是乙個 char* 型別的變數。當然,如果非要用printf()輸出 str 也不是

不可以。採用 printf("%s", str.c_str()) or printf(str.c_str()) 就可以。

既然c++中的 cout 能夠直接輸出基本變數型別的變數(bool, short, int, long, float, double),

也能輸出類(string)。如果對於我們自己建立的如下的乙個類,能否直接使用 cout 輸出呢?

答案是否定的,錯誤原因已經由 宇宙最強的ide(visual studio)給提示出來了。

不過根據這個錯誤提示,我們也大概可以推測改進**的方法,那就是為我們自己新建的

這個類(myclass) 過載 << 運算子。

ps:

之前在做的乙個專案中,用到了 c++裡面的 stl 的一些函式。主要是因為 stl為

我們實現好了基本的資料結構和演算法,可以避免重複造輪子。在做專案之前,對於stl也

只是「久聞其聲」沒怎麼用過,因此也是現學現用。

雖然現學現用也完成了功能,由於缺乏對於stl 具體細節的掌握,更不清楚其底層實現。

導致有時候會遇到些「指標類錯誤」。而每當遇到這種問題時,為了盡快解決問題,我總是

通過搜尋引擎找到乙個解決方案,然後copy 到我的**中。可是這樣做的多了,我感覺很心虛。

是,的確是做了些東西,但也只是東拼西湊,缺乏了對知識系統的理解和掌握。

痛定思痛之後,果斷翻起《stl原始碼剖析》這本書。今天看了些基礎的內容,對於其中

「過載」部分的介紹挺感興趣。於是做了乙個記錄,希望能夠幫助c++新人更好的掌握過載

的使用。

C語言 用「 」輸出乙個菱形

如何輸出如圖所示的菱形 先要將菱形分為上下兩個三角形 例如圖示,上為7行的正三角,下為6行的倒三角 接下來通過兩個迴圈分別輸出這兩部分。首先設定變數line代表上行數,通過鍵盤輸入,接著設定三個變數 i,j,k i 控制迴圈次數,j 控制空格數,k 控制 的個數 在上三角中,迴圈line次,行數 i...

用C 實現乙個日期類

最近在複習c 的時候發現日期類是乙個非常有用的類,在現實中是非常實用的 雖然我不知道為什麼這麼實用的類,庫里沒有 以下是我自己實現的日期類的 因為大部分都是運算子的過載,所以理解起來應該並不難 include include using namespace std class date date c...

設計乙個類,用get,set

建立乙個people類,裡面包含 名字 年齡 兩個成員變數,以及這兩個成員的get,set方法 要求用標頭檔案 實現檔案的標準格式實現,然後可以在main函式裡直接建立people物件 第一步 建立控制台程式 include stdafx.h include people.h include inc...