咱們在構造對象時,會有兩種狀況,第一種是涉及到系統資源的調用,第二種是不涉及系統資源的。若是是後者,那麼,我構造對象時只要寫一個普通的構造函數就能夠了。可是若是是前者,那麼,就有可能出現系統資源調用失敗的狀況,那麼,因此,爲了,避免這樣的狀況出現,咱們就能夠採用二階構造的方式來構造一個對象。ide
class Dog{ private: int IQ; int foot; int* m_pointer; bool construct() { bool ret = true; m_pointer = new int[m_length]; if( m_pointer ) { for(int i=0; i<m_length; i++) { m_pointer[i] = 0; } } else { ret = false; } return ret; } public: Dog ( int IQ, int foot ){ this->IQ = IQ; this->foot = foot; } void setIQ ( int IQ ){ this->IQ = IQ; } void setFoot ( int foot ){ this->foot = foot; } int getIQ ( void ){ return this->IQ; } int getFoot ( void ){ return this->foot; } static IntArray* NewInstance(int length);{ IntArray* ret = new IntArray(length); if( !(ret && ret->construct()) ) { delete ret; ret = 0; } return ret; } };