1樓:17哥
b two(&one);這只是一個b類的建構函式而已。引數&one的意思就是在傳參的時候是按照傳引用的方式傳的。
b two(one);這種方式時按照傳值的方式的建構函式,在執行這種建構函式的時候,需要首先呼叫a的建構函式初始化引數one,如果物件a比較複雜的話,則會耗時很大。因此,一般而言,當一個函式的引數是一個比較複雜的物件的時候,是按照傳引用的方式傳引數的。
b two(&one);語句和explicit是沒有關係的,explicit只是表示類的這個建構函式是顯示的建構函式而已。
2樓:江戶川跑男
a one;
b two(&one);//這句是申明一個b物件two,呼叫拷貝建構函式,傳參one,是用one的資訊構造two
其中b被explicit修飾:因為a和b是兩個不同的類,加explicit是為了防止強制型別轉換(如b two = one;)。
3樓:
很簡單啊, b的建構函式引數為a的指標, 跟explicit沒什麼關係
4樓:匿名使用者
傳參,看一下b的建構函式
使用C中的new關鍵字建立物件要不要加
new 一個類或者結構體的話,實際上就是呼叫了他的無引數建構函式。加上括號,指名了呼叫類的無引數的建構函式 括號內加引數的話,就是呼叫其他帶引數的類的建構函式了。總結 不到括號的比較簡潔,但是有一定侷限性,無法帶引數例項化一個類。要,這是呼叫建構函式 new 一個類或者結構體的話,實際上就是呼叫了他...
c語言中括號裡的怎麼理解一般建立物件不是不帶引數嗎
建立物件 例項化 是使用的這個類的建構函式來實現的,這個建構函式可以有多個過載,但是預設情況下是有一個無參構造,所以很多類即使不寫構造也可以new出來 如果想使用其他的建構函式,或者某個類只提供了有參構造 這種情況下,c 不會自動加上無參建構函式 那麼在new的時候就必須根據方法簽名來提供對應的引數...
C語言建立帶頭結點的單連結串列,C語言建立帶頭結點的單連結串列
單連結串列的生成有2種方式 頭插法和尾插法。1 頭插法 函式名稱 linklist createlinklisthead 函式功能 利用頭插法建立連結串列 參 數 無 返 回 值 建立完連結串列後的連結串列頭結點 說 明 無 extern linklist createlinklisthead re...