今天,寫了乙個自定義類,與c中的結構體類似。
struct 類名; 自定義類的後面必須加;否則會報錯。
在自定義類中,定義了乙個string型別的變數。如下所示:
struct sale_data
string isbn;//書號
unsigned units_sold;//銷售數量
double revenue;//總**
將此結構放在乙個標頭檔案中,並在main函式中去呼叫,結果在呼叫的過程中,此結構不識別string型別的isbn,而其他的兩個變數都會識別到。編譯之後出現的錯誤為:
經過排查錯誤,乙個是sale_data所在的標頭檔案中所包含的標頭檔案不對,string型別的變數應該包含的是標頭檔案,而不是標頭檔案。第二個是string型別是包含在std命名空間中的,所以還必須加上using namespace std;命名空間。
---------------以下**
一般乙個c++的老的帶「.h」副檔名的庫檔案,比如iostream.h,在新標準後的標準庫中都有乙個不帶「.h」副檔名的相對應,區別除了後者的好多改進之外,還有一點就是後者的東東都塞進了「std」名字空間中。
但唯獨string特別。
問題在於c++要相容c的標準庫,而c的標準庫里碰巧也已經有乙個名字叫做「string.h」的標頭檔案,包含一些常用的c字串處理函式,比如strcmp。
這個標頭檔案跟c++的string類半點關係也沒有,所以並非的「公升級版本」,他們是毫無關係的兩個標頭檔案。
c 自定義string類
1.標頭檔案部分 define crt secure no warnings pragma once include includeusing namespace std class mystring 2.函式定義部分 include mystring.h mystring mystring mys...
自定義string類
在學習c 過程中,相比起使用char 或者是char陣列,使用 string 類對字串進行操作要方便快速很多。string 並不是c 的基本資料型別,它實際上是乙個類,那麼這個類具體是怎麼實現對字串的操作的呢?如何去自定義乙個類去實現string類同樣的效果呢?首先,先列舉一些 string 類可以...
自定義string類
所需知識點 strcpy arg1,arg2 會把arg2的內容賦值給arg1,直到 0 為止,複製結束後會在arg1後加乙個 0 strlen 返回字串長度,只會返回 0 前字串的長度,如 123 0qweqr 返回值為3 std cin 遇到空格或回車符就結束輸入,遇到回車或eof會讀入 std...