看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 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)
LPH66:"覆載類別A" 是指? 10/08 03:44
tropical72:類別 A ,我要重載運算子等於 (=) 10/08 03:54
※ 編輯: 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)