C 學習之路 day4

2021-08-07 09:43:28 字數 2011 閱讀 9383

day4知識點:

mystring類物件自我實現以及部分實驗源**:

#ifndef mystring_h

#define mystring_h

#include class mystring

;#endif // mystring_h

#include "mystring.h"

#include mystring::mystring(const char* p)

else

}mystring::mystring(const mystring& another)

mystring& mystring::operator=(const mystring& another)

mystring mystring::operator+(const mystring& another)

bool mystring::operator>(const mystring& another)

bool mystring::operator

bool mystring::operator==(const mystring& another)

char& mystring::operator(int idx)

char mystring::at(int idx)

char* mystring::str()

//main函式

#include #include "mystring.h"

using namespace std;

#if 0

int main()

2.如2中的淺拷貝mystring s(s3);(在類中開闢空間的情況下)若不作處理或用系統提供的預設建構函式,會導致記憶體的重析構 double free,原因(s和s3的_str指向相同的記憶體空間,在析構時會析構兩次)。應該如此修改

3.拷貝構造

1)  格式 類名(const 類名 &another),依附於原有物件建立新物件;

a a;

a b(a);

a c = b;

2)若不提供,系統會提供預設,一旦自定義,系統不再提供預設;

3)系統提供的預設,是一種等位拷貝。也就是淺拷貝;

4)淺拷貝,在某些情況下,會導致記憶體重析構(如2所示,含有堆空間的情況下),即double free(有些系統編譯時提示錯誤,有些系統編譯通過).要自己實現拷貝構造。

4.賦值過載

1)格式 類名 operator=(const mystring& another);兩個物件都已經建立好之後的賦值行為。

a c;

a a;

c = a;

2)編譯器提供預設,一旦自定義,系統不再提供預設;

3)預設賦值運算子也是一種等位賦值,淺賦值;

4)淺賦值,可能會導致:a)自身發生記憶體洩漏;b)記憶體發生重析構;c)自賦值。應該如此修改

5.建立類時的必要建構函式

class a

~a();

a(const a& another);

a& operator=(const a& another);

}

Linux學習之路 day 4

一 檔案目錄類 1.pwd 顯示當前目錄的絕對路徑。絕對路徑 從根目錄 開始寫起的檔案或目錄名稱,即從根目錄開始定位到需要的目錄中去 相對路徑 相對於當前路徑的寫法,即從當前工作目錄開始定位到需要的目錄中去 2.ls 列出當前目錄中所有的子目錄和檔案。不包含 開頭的檔案 a 顯示當前目錄下的所有檔案...

秋招C 開發學習之路day4

day4 map 迭代器 set tcp tcp頭部 map,其內部的資料都是有序的,預設排序是按照key的大小進行的排序。使用例子 mapmapstudent 一一對應的key value。key可以任意型別,但是必須支援 操作符。根據key可以快速查詢,複雜度為logn。map的標頭檔案,inc...

程式設計學習DAY4

鏈結檔案 link file 分為軟鏈結和硬鏈結,軟鏈結也稱為符號鏈結,相當於windows系統中的快捷方式檔案,建立軟鏈結使用ln s。硬鏈結相當於是檔案的多個副本,但它們的資料內容會保持實時同步,使用ln命令建立。檔名萬用字元 和?匹配0個或者多個任意字元,匹配1個任意字元 重點 對於普通檔案而...