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個任意字元 重點 對於普通檔案而...