推 kimkao:void f(A b)底下的b=new A();存活scope只在void f()裡面 12/10 17:21
可是...我對於variable的scope又做了以下測試
http://gist.github.com/34301
如果依照kimkao大所說來看
感覺又好像怪怪的
執行完Matrix的ctor
m就無效了吧?
回到原本問題
我覺得是
很像C裡面的call by value
例子如下:
void f(int *p)
{
p=new int (5);
*p=10;
}
void main()
{
int a=5;
int *ptr=&a;
f(ptr); //執行完這行 a還是5
}
※ 編輯: walm20 來自: 140.118.126.177 (12/10 19:00)
推 hsnucsc:我實際執行完f(ptr) a是10吧 @@ 12/10 19:49
→ walm20:確定是5 12/10 20:17
推 hsnucsc:是5 我錯了 12/10 20:41
※ 編輯: walm20 來自: 140.118.126.177 (12/10 21:23)
推 adrianshum:java 只有 pass-by-value. 觀念清楚就不難明白 12/11 16:04
推 Lordaeron:定義問題, 跟觀念無關. 12/12 20:55