C 中乙個關於複製建構函式和指標的問題

2021-07-10 13:29:33 字數 684 閱讀 3522

copy建構函式是顯式地去處理乙個物件初始化另乙個物件的問題,如果類含有乙個指標的話,那麼處理起來主要分為兩種情況。

a. 指標在類的構造或者初始化時指向動態分配的記憶體, 並在物件析構時對該指標進行delete操作,釋放記憶體資源。

這種情況下,對指標的操作是萬萬不能簡單對指標位址進行賦值操作的。應該是動態申請記憶體,然後按值copy具體內容,從而防止指標指向無效記憶體位址的情況。

b. 指標指向乙個生命週期大於該類所有物件生命週期的位址空間。

這種情況下,可以對指標直接賦值。

下面是示例**:

#include

using namespace std;

const int nlen = 64;

// global variable

const char gch = "hello, wangzhaohua, i't your chance.";

char gch2 = "global variable test";

class myclass

;myclass::myclass()

myclass::~myclass()

pg = null;

}myclass::myclass(const myclass &obj)

void myclass::myfun()

int main(void)

C 類中乙個構造函式呼叫另乙個建構函式

class a a int aa,int bb,int cc 上面類中,已經有乙個建構函式,形參有兩個,我們又過載乙個有3個形參的建構函式,為了減少 量,就想著讓3個引數的構造函式呼叫2個引數的建構函式,然後在執行一些自己的 這就如同派生類先呼叫基類的同名函式,在執行自己特有的 這種機制如何實現呢?...

C 淺層複製建構函式和深層複製建構函式

淺層複製建構函式 class person person person one 自定義淺層複製建構函式,就是複製乙個物件,說到底,就是複製傳進來的物件的所有成員變數,實際上,系統的預設淺層複製建構函式也是類似這樣的原理 person void setheight int h int getheigh...

關於Android中乙個Activity的啟動過程

所有的應用都是在launcher的基礎上執行起來的,具體如下 1.launcher會向activitymanagerservice ams 傳送乙個啟動mainactivity的請求 2.ams在接到請求後,會將mainactivity的資訊儲存下來,然後向launcher傳送乙個進入中止狀態的程序...