在函數中申請內存,使用參數傳遞方式將此內存的首地址傳給實參

要求:將一個指針p傳入一個函數f,f的一個參數p1接收此指針,用p1申請p所屬類的內存(new),要求亦指向此申請的內存首地址傳。
比較下面兩段代碼,問哪一個能完成任務?爲什麼?
(1)

using namespace std;
class Matrix{
public:
   Matrix(){m_RowCount = 0;};
   int getRowCount(){return m_RowCount;};
private:
   int m_RowCount;
};
void f1(Matrix *pM){
    pM = new Matrix();
}
int main(){
   Matrix *p;
   f1(p);
   cout<<p->getRowCount();
   return 0;
}

(2)

using namespace std;
class Matrix{
public:
    Matrix(){m_RowCount = 0;};
    int getRowCount(){return m_RowCount;};
private:
    int m_RowCount;
};
void f1(Matrix * & pM){
    pM = new Matrix();
}
int main(){
   Matrix *p;
   f1(p);
   cout<<p->getRowCount();
   return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章