C 自定義類中使用string變數問題

2021-07-09 08:41:14 字數 809 閱讀 2048

今天,寫了乙個自定義類,與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...