C++ 中的複製省略


複製省略也稱為複製忽略,這是編譯器最佳化技術之一。它可以避免不必要的物件複製。幾乎任何當前編譯器都使用此複製省略技術。

讓我們透過一個示例程式碼看看它是如何工作的

示例程式碼

#include <iostream>
using namespace std;
class MyClass {
   public:
      MyClass(const char* str = "\0") {  //default constructor
         cout << "Constructor called" << endl;
      }
      MyClass(const MyClass &my_cls) { //copy constructor
         cout << "Copy constructor called" << endl;
      }
};
main() {
   MyClass ob = "copy class object";
}

輸出

Constructor called

現在,讓我們討論為什麼不呼叫複製建構函式?

因此,在構造一個物件時,會生成一個臨時物件並將其複製到實際物件。因此,我們可以說在內部它看起來像這樣

MyClass ob = "copy class object";

將工作為

MyClass ob = MyClass("copy class object");

C++編譯器避免了此類開銷

更新於: 30-Jul-2019

173 次瀏覽

開啟您的事業

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.