[問題] 這兩個new的差異
有一個class叫做ABC,因為在很多class會用到他,
而且他需要初始化一些東西(不是指constructor),
所以我把初始化的code寫在另一個可以被共同呼叫的函式
以免把這個code在每個 class 都再寫一次
in header: ABC* myABC;
in source: InitABC(myABC);
而函式原本是這樣寫 但是會錯誤:
void InitABC(ABC* aABC)
{
aABC = ABC::NewL();
// ...
}
如果改成這樣就ok
ABC* InitABC()
{
ABC* aABC = ABC::NewL();
return aABC;
}
並改用 myABC = InitABC();
請問上面這兩個的差異是什麼呢?
註: NewL的內容:
ABC* ABC::NewL()
{
ABC* tmp = new ABC();
// ...some code
return tmp;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.138.141
※ 編輯: maboroshiga 來自: 123.204.138.141 (12/08 17:13)
→
12/08 17:13, , 1F
12/08 17:13, 1F
推
12/08 17:14, , 2F
12/08 17:14, 2F
→
12/08 17:15, , 3F
12/08 17:15, 3F
→
12/08 17:17, , 4F
12/08 17:17, 4F
推
12/08 17:20, , 5F
12/08 17:20, 5F
→
12/08 17:21, , 6F
12/08 17:21, 6F
→
12/08 17:21, , 7F
12/08 17:21, 7F
→
12/08 17:23, , 8F
12/08 17:23, 8F
推
12/08 17:27, , 9F
12/08 17:27, 9F
推
12/08 17:38, , 10F
12/08 17:38, 10F
→
12/08 18:26, , 11F
12/08 18:26, 11F
→
12/08 18:49, , 12F
12/08 18:49, 12F
→
12/08 18:54, , 13F
12/08 18:54, 13F