要求:將一個指針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;
}