1. 程式人生 > >C++ 拷貝建構函式中的指標問題

C++ 拷貝建構函式中的指標問題

{
    cout 
<<"In the copy-constructor "<< endl;
    m_na 
= obj.m_na +1;    
    
// pch = obj.pch        //不能直接Copy指標的值,因為,如果obj消亡的時候,
                            
//該指標指向的儲存空間將被釋放
    
//應該採用下面的方法
    pch =newchar[nLen];    //在堆上分配新的空間
    memset(pch, 0x0, nLen);    
    memcpy(pch, obj.pch, nLen);    
//將obj.pch指向的內容copy過來 
    
//obj.pg指向一個全域性變數,obj消亡後,該全域性變數的地址一直有效,故可以直接
    
//進行指標值的Copy.
    pg = obj.pg;    
}