[問題] overload operator=

看板C_and_CPP作者 (藍影)時間15年前 (2010/10/08 03:34), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/3 (看更多)
遇到的問題: (題意請描述清楚) class A{ public: int *array; size_t Len; A(size_t len=200); ~A(); A &operator=(const A& Obj); A &operator=(const char* Str); A &operator++(); A operator+(const A& Obj); Complex operator+(const Complex&); }; A::A(size_t len) { Len = len; array = new int[Len]; } A::~A(){ delete [] array; array = NULL; } A A::operator+(const A& Obj){ A tmp; .... return tmp; } char String[] = "1234"; A obj1, obj2; obj1 = obj2; // (a) obj1 = "1234"; // (b) (1) 若只覆載類別 A 時,是否有必要 overload = ?? (只考慮 case (a) ) (2) 若上述為否,若同時覆載類別 A 與 字串 時, ( 考慮 case (a),(b) ) 是否二個 overload 都要寫?還是只要寫字串的就行了? (3) 當然 overload operator+ 時,由於我建構子有寫了 new 此時之 tmp 為區域變數,當執行完該函數後, 記憶體應全都清掉了,所以這種重載是失敗的嗎? 謝謝指教 感激不盡 -- 如果沒有明天 我想見你最後一面.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142 ※ 編輯: tropical72 來自: 180.177.76.142 (10/08 03:40)

10/08 03:44, , 1F
"覆載類別A" 是指?
10/08 03:44, 1F

10/08 03:54, , 2F
類別 A ,我要重載運算子等於 (=)
10/08 03:54, 2F
※ 編輯: tropical72 來自: 180.177.76.142 (10/08 03:57) ※ 編輯: tropical72 來自: 180.177.76.142 (10/08 03:58) ※ 編輯: tropical72 來自: 180.177.76.142 (10/08 04:07)
文章代碼(AID): #1ChY3OKS (C_and_CPP)
文章代碼(AID): #1ChY3OKS (C_and_CPP)