C 中sting類的簡單實現方法

2022-10-04 01:36:12 字數 1053 閱讀 2273

string

在c++的學習生涯我中發現string類的功能十分強大,所以我們是很有必要模擬實現它的,況且在面試的時候模擬實現乙個string類也是面試官經常會考的,但是因為外界因素的限制我們是不可能模擬的和庫里的string一致的(c++庫里的string功能更強大),所以今天我們只模擬實現string的基本功能-建構函式,拷貝建構函式,析構函式,賦值運算子過載,運算子+=的過載,運算子的過載,c_str(得到乙個c風格的字元指標,可操作字串),size,push_back,insert(深拷貝),以及用寫時拷貝copy_on_write的方式實現基本的string類

深拷貝的方式

class string

// return *this;

//}

~string() }

void string::pushback(char c)

string &string::operator+=(const char * s)

_pstr[_size]='\0';

return *this;

} string &string::insert(size_t pos,const char *str)

strcpy(_pstr+pos,tmp);

return *this;

}通過測試上述**可正常執行,特別是在實現賦值運算子過載的時候我們使用了兩種方式,值得一提的是應用swap函式來實現賦值運算子的過載(在傳參時不可以傳引用),因為應用swap函式實現是根據臨時變數的建立並且該臨時變數出作用域就會自動程式設計客棧呼叫析構函式銷毀(現代的方法)

測試深拷貝的方法

void text1()

return _str[index];

} ~string()

{ cout<

在這裡我們將指標指向的計數器的位置放置在資料空間的前四個位元組處

測試用例:

void test1()

{ string str1("abcd");

cout<

本文標題: c++中sting類的簡單實現方法

本文位址:

C 日期類簡單實現

剛剛開始學c 一般入門都會了解到日期類,對於日期類,我們首先是要了解。不過,如果我們能夠更加的了解它,對於後面我們學習其他類的話,會有乙個很大的幫助。現在在這兒,簡單實現一下日期類的一些介面 include using namespace std class date include date.h ...

深入C 中類的方法

1.類中的構造方法 語法 與類名相同,不能有返還值,不能加void。使用快捷鍵 ct 雙擊tab 自動為當前的類新增不帶引數的預設建構函式。作用 對類進行例項化物件的操作實質就是呼叫當前類的構造方法 還可以使用帶引數的構造方法完成對類的屬性的賦值操作。快速的例項化物件並且為屬性賦值,在實際工作中應用...

C 中的類,方法等

namespace classlibrary1 public int myproperty 建立屬性,輸入prop tab 2 public string getvalue int id 定義乙個方法 例項方法 public static string getvalue int id 定義乙個方法 ...