亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我用&tmp卻通過了?區別是什么?

為什么我用&tmp卻通過了?區別是什么?

陪伴而非守候 2022-07-08 11:07:24
如題Matrix::Matrix(Matrix tmp){y=tmp.y;x=tmp.x;M=new int *[y];for(int yy=0;yy<y;yy++)M[yy]=new int[x];for(yy=0;yy<y;yy++)for(int xx=0;xx<x;xx++)M[yy][xx]=tmp.M[yy][xx];}我用tmp時不通過Matrix::Matrix(Matrix &tmp){y=tmp.y;x=tmp.x;M=new int *[y];for(int yy=0;yy<y;yy++)M[yy]=new int[x];for(yy=0;yy<y;yy++)for(int xx=0;xx<x;xx++)M[yy][xx]=tmp.M[yy][xx];}
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

首先,這是一個拷貝構造函數。
拷貝構造函數的作用就是通過另外一個本類類型的對象來創建一個對象,如果不帶&那么調用拷貝構造函數時,而拷貝構造函數本身是值傳遞,形實結合的時候,又要調用拷貝構造函數,這樣就是一個死循環。所以拷貝構造函數的參數一定是引用,不能是對象。

查看完整回答
反對 回復 2022-07-11
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號