Apply for memory in the function, and pass the first address of the memory to the real parameter using the parameter transfer method. Function Parameters
Requirement: pass a pointer p into a function f. A parameter p1 of f receives the pointer and uses p1 to apply for the memory (new) of the class to which p belongs ), the request is also directed to the first memory address of the application.
Compare the following two pieces of code and ask which one can complete the task? Why?
(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 <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 <getRowCount ();
Return 0;
}