什麼是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++ 編譯器避免了此類開銷。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP