Jump to...
redirecting...

Log for *新手討論群

[photo](media:AgACAgUAAx0CQ8X83QACSW5gY_Z51HIJFnoEkdu90hSaioNbwAACbqsxG22LIFfknd_J8VEye9yqEm90AAMBAAMCAANtAAOzcAMAAR4E@telegram)
想實作動態記憶體配置,但發現同class的動態記憶體(arr)只有在定義的時候能夠操作
嘗試在header裡面先定義好動態記憶體就能夠執行,但在建構子定義就沒辦法在其他member function調用
[photo](media:AgACAgUAAx0CQ8X83QACSXFgY_mGYN5BsqCsREXxrb79sBDwqAACcqsxG22LIFdyMJZrOPI2SGCdD290AAMBAAMCAANtAAP1fQMAAR4E@telegram)
但有沒有比較好的方法處理這個問題?
[photo](media:AgACAgUAAx0CQ8X83QACSXNgY_nDgpJZSQfCOM6wqsxGO8PvWQACc6sxG22LIFfBvGaP11osMn30vnN0AAMBAAMCAANtAAPSWwACHgQ@telegram)
你這裡的 arr 其實不是 this->arr?
this->arr = new int[num]; 看看
可以執行了
這兩種寫法的差異在?
*arr 跟 this->arr
[photo](media:AgACAgUAAx0CQ8X83QACSXhgY_r1e9w9lylkCmhFMUGQp7kv7QACdasxG22LIFf6tny2TJ_FTLm4WHN0AAMBAAMCAANtAANmXQACHgQ@telegram)
int* arr 才對吧
我後來有改了
反正,

arr 你宣告的應該是個 pointer
*arr 是取 pointer 指向的值

arr 和 this->arr 是一樣的意思
通常 arr 都會隱式指代 this->arr
但假設有定義過 arr,就得用 this->arr 顯式存取
就例如 int something(int* arr)int something { int* arr = new int(); } 就需要用 this->arrarr 成員
簡言之,你這個 case arr = … 等於 `this->arr = …`,因為沒有在函數的其他地方定義過 arr
了解了 感謝
👍
不太會實作class的 operator<<,有點頭痛😥