萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> Html5 >> C++中復制和虛復制的區別

C++中復制和虛復制的區別

下面是C++中復制和虛復制的區別

在繼承過程中, 需要區分復制(copy)和虛復制(virtual copy);

在派生類轉換為基類時, 復制(copy)有可能切掉(sliced down)派生對象的派生部分, 只保留基類部分, 使派生類的虛函數無法使用; 為了避免此情況, 如果傳入是對象, 則可以定義虛函數clone, 使派生類繼承此虛函數, 再傳入容器, 可以重載方法; 另外, 如果傳入是實參, 使用shared_ptr

配合make_shared添加容器, 也可以進行動態綁定; 再傳入容器中, 容器會自動調用派生類的重載方法, 實現動態綁定; 注意: 引用限定符(reference qualifier) GCC 4.8.1 才能支持;

以上就是我們給大家總結的C++中復制和虛復制的區別,希望大家繼續關注本網站。

copyright © 萬盛學電腦網 all rights reserved