[問題] overload operator=
遇到的問題: (題意請描述清楚)
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
10/08 03:44, 1F
→
10/08 03:54, , 2F
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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):