1樓:匿名使用者
這個呼叫的預設拷貝函式
2樓:匿名使用者
this實際上就是呼叫成
copy員函式的物件地址。
如:time1.display();
若display()裡有用到this的話,this的值其實為&time1,
所以*this = time1.
time time::operator ++(int)
這個是後加加的函式原型,後++其實是先儲存值,在++,然後返回儲存的值。
time temp(*this); 就是要先儲存一個臨時值,然後再呼叫前++,最後返回這個臨時變數。
語法的話 其實*this = time1;
相當於time temp(time1); 呼叫的是time的拷貝建構函式生成一個和time1完全相同的物件temp。
3樓:匿名使用者
前置++和後置++的區別 temp儲存的是原來的值也就是int i = 0,j; j=i++ + 1;i先取原來的值0
用而後自加 time temp(*this);temp只是儲存了原專來的值並屬
返回給呼叫者。
c語言邏輯運算子與自增自減運算子的雜糅運算
走 這涉及一個執行流程的問題,當執行到if的時候,一個合理的做法是先選擇走 回的哪條路,然後才是答計算涉及的表示式,這是提高效率的方法,隨之也會帶來所謂的 如果把式子改為b c a 結果如你所願,3,0,1。但以書中的例子,a b c 把a 計算完成後,發現為真,直接跳轉到後面 了,導致b和c都沒有...
請問 c 中,這樣過載運算子對不對
最大的錯誤在於沒有理解運算子過載,如 class a 其中的運算子函式呼叫,相當於,下面的函式呼叫 物件 operator 運算子 如果單單寫 int operator rmb rmb,int i 如果c 認為這個是正確的,那麼在 rmb r r 1 10 和int a 4 a 1 1 c 怎麼能判...
有關c 過載運算子的問題
第一行是引用,是傳地址呼叫函式,在呼叫函式時會減少複製物件的開銷。這時,形參就是實參的一個引用,對形參的修改會影響到實參。第二行的傳值呼叫,所謂的傳值呼叫是指把實參複製給形參,形參和實參是兩個獨立的個體,形參是實參在記憶體上的另一個拷貝,對形參的一切修改一般不會影響到實參。如,對於第二個宣告有以下函...