Assignment operator (C++) (original) (raw)

About DBpedia

在C++程式語言裡,設定運算子(英文:assignment operator)是用等號 = 符號。就像其他的C++運算子一樣,它可以作為多載。 複製設定運算子是一個特別的設定運算子,通常是用來把已存在的物件指定給其他相同類別的物件。它是一個特別的成員函式,如果程式設計師沒有定義這個成員函式,那麼編譯器會自動地產生這個成員函式。編譯器產生的程式碼是以單一成員進行物件複製的動作。 複製設定運算子,這個成員函式與複製建構子的相異點在於,它一定會清除目標物件的資料成員(以及確實掌控自我設值的動作),而複製建構子不會初始化類別的資料成員。 以下是原始碼的範例: My_Array first; // 由預設建構子做初始化動作My_Array second(first); // 由複製建構子做初始化動作My_Array third = first; // 這個也是由複製建構子做初始化動作second = third; // 由複製設定運算子做設定的動作

Property Value
dbo:abstract In the C++ programming language, the assignment operator, =, is the operator used for assignment. Like most other operators in C++, it can be overloaded. The copy assignment operator, often just called the "assignment operator", is a special case of assignment operator where the source (right-hand side) and destination (left-hand side) are of the same class type. It is one of the special member functions, which means that a default version of it is generated automatically by the compiler if the programmer does not declare one. The default version performs a memberwise copy, where each member is copied by its own copy assignment operator (which may also be programmer-declared or compiler-generated). The copy assignment operator differs from the copy constructor in that it must clean up the data members of the assignment's target (and correctly handle self-assignment) whereas the copy constructor assigns values to uninitialized data members. For example: My_Array first; // initialization by default constructorMy_Array second(first); // initialization by copy constructorMy_Array third = first; // Also initialization by copy constructorsecond = third; // assignment by copy assignment operator (en) В C++, оператор присвоєння, '=', це оператор використовний для присвоєння . Як і більшість інших операторів в С++, він може бути перевантаженим. Оператор присвоєння копіюванням, часто він називається просто «оператор присвоєння», це особливий випадок оператора, де джерело (права частина) і призначення (ліва частина) одного й того самого класу. Це одна зі спеціальних функцій членів, це означає, що цей оператор автоматично створюється компілятором, якщо його не визначив розробник. Версія створена компілятором виконує почленне копіювання, де кожний з членів копіюється за допомогою свого власного оператора присвоєння (який у свою чергу може бути визначений програмістом або компілятором). Оператор присвоєння копіюванням відрізняється від конструктора копіювання тим, що він має очистити члени даних об'єкта по лівий бік оператора присвоєння (і також вірно обробити самоприсвоєння), тоді як конструктор копіювання надає значення неініціалізованим членам. For example: My_Array first; // ініціалізація конструктором по замовченнюMy_Array second(first); // ініціалізація конструктором копіюванняMy_Array third = first; // також конструктором копіюванняsecond = third; // присвоєння через оператор присвоєння копіюванням (uk) 在C++程式語言裡,設定運算子(英文:assignment operator)是用等號 = 符號。就像其他的C++運算子一樣,它可以作為多載。 複製設定運算子是一個特別的設定運算子,通常是用來把已存在的物件指定給其他相同類別的物件。它是一個特別的成員函式,如果程式設計師沒有定義這個成員函式,那麼編譯器會自動地產生這個成員函式。編譯器產生的程式碼是以單一成員進行物件複製的動作。 複製設定運算子,這個成員函式與複製建構子的相異點在於,它一定會清除目標物件的資料成員(以及確實掌控自我設值的動作),而複製建構子不會初始化類別的資料成員。 以下是原始碼的範例: My_Array first; // 由預設建構子做初始化動作My_Array second(first); // 由複製建構子做初始化動作My_Array third = first; // 這個也是由複製建構子做初始化動作second = third; // 由複製設定運算子做設定的動作 (zh) Операция присваивания в языке программирования C++ обозначается знаком '='. Как и другие операторы в C++, она может быть перегружена. Операция присваивания копированием - особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором, выполняет побитовое копирование. Операция присваивания копированием отличается от конструктора копирования тем, что должна очищать члены-данные цели присваивания (и правильно обрабатывать самоприсваивание), тогда как конструктор копирования присваивает значения неинициализированным членам-данным. Например: My_Array first; // инициализация конструктором по умолчаниюMy_Array second = first; // инициализация конструктором копированияsecond = first; // присваивание операцией присваивания копированием В качестве особого случая следует отметить следующий вариант инициализации конструктором копирования: My_Array second = My_Array; В этом случае компилятор (например VC2013) сразу же без всяких опций оптимизации выполняет оптимизацию возвращаемого значения (RVO, return value optimization) и конструктор копирования не вызывается. (ru)
dbo:wikiPageExternalLink http://icu-project.org/docs/papers/cpp_report/the_anatomy_of_the_assignment_operator.html
dbo:wikiPageID 7789356 (xsd:integer)
dbo:wikiPageLength 6015 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1121720372 (xsd:integer)
dbo:wikiPageWikiLink dbr:Swap_(computer_science) dbr:C++_Standard_Library dbc:Assignment_operations dbr:Copy_constructor dbr:Deep_copy dbr:Operator_overloading dbr:C++ dbc:Operators_(programming) dbc:C++ dbr:Assignment_(computer_science) dbr:Operator_(programming) dbr:Operators_in_C_and_C++ dbr:Rule_of_three_(C++_programming) dbr:Programming_language dbr:Exception_safety dbr:Move_assignment_operator dbr:Special_member_functions dbr:Destructor_(computer_science) dbr:Exception_guarantees
dbp:wikiPageUsesTemplate dbt:Reflist dbt:C++_programming_language
dcterms:subject dbc:Assignment_operations dbc:Operators_(programming) dbc:C++
gold:hypernym dbr:Operator
rdf:type dbo:Company
rdfs:comment 在C++程式語言裡,設定運算子(英文:assignment operator)是用等號 = 符號。就像其他的C++運算子一樣,它可以作為多載。 複製設定運算子是一個特別的設定運算子,通常是用來把已存在的物件指定給其他相同類別的物件。它是一個特別的成員函式,如果程式設計師沒有定義這個成員函式,那麼編譯器會自動地產生這個成員函式。編譯器產生的程式碼是以單一成員進行物件複製的動作。 複製設定運算子,這個成員函式與複製建構子的相異點在於,它一定會清除目標物件的資料成員(以及確實掌控自我設值的動作),而複製建構子不會初始化類別的資料成員。 以下是原始碼的範例: My_Array first; // 由預設建構子做初始化動作My_Array second(first); // 由複製建構子做初始化動作My_Array third = first; // 這個也是由複製建構子做初始化動作second = third; // 由複製設定運算子做設定的動作 (zh) In the C++ programming language, the assignment operator, =, is the operator used for assignment. Like most other operators in C++, it can be overloaded. The copy assignment operator, often just called the "assignment operator", is a special case of assignment operator where the source (right-hand side) and destination (left-hand side) are of the same class type. It is one of the special member functions, which means that a default version of it is generated automatically by the compiler if the programmer does not declare one. The default version performs a memberwise copy, where each member is copied by its own copy assignment operator (which may also be programmer-declared or compiler-generated). (en) В C++, оператор присвоєння, '=', це оператор використовний для присвоєння . Як і більшість інших операторів в С++, він може бути перевантаженим. Оператор присвоєння копіюванням, часто він називається просто «оператор присвоєння», це особливий випадок оператора, де джерело (права частина) і призначення (ліва частина) одного й того самого класу. Це одна зі спеціальних функцій членів, це означає, що цей оператор автоматично створюється компілятором, якщо його не визначив розробник. Версія створена компілятором виконує почленне копіювання, де кожний з членів копіюється за допомогою свого власного оператора присвоєння (який у свою чергу може бути визначений програмістом або компілятором). (uk) Операция присваивания в языке программирования C++ обозначается знаком '='. Как и другие операторы в C++, она может быть перегружена. Операция присваивания копированием - особый вид операции присваивания, используемый для присваивания объектов одного класса друг другу. Является одним из и генерируется автоматически компилятором в случае, если нет явного объявления программистом. Код, сгенерированный компилятором, выполняет побитовое копирование. В качестве особого случая следует отметить следующий вариант инициализации конструктором копирования: My_Array second = My_Array; (ru)
rdfs:label Assignment operator (C++) (en) Операция присваивания в С++ (ru) Оператор присвоєння (C++) (uk) 設定運算子 (zh)
owl:sameAs freebase:Assignment operator (C++) wikidata:Assignment operator (C++) dbpedia-bg:Assignment operator (C++) dbpedia-ru:Assignment operator (C++) dbpedia-uk:Assignment operator (C++) dbpedia-zh:Assignment operator (C++) https://global.dbpedia.org/id/2KSdS
prov:wasDerivedFrom wikipedia-en:Assignment_operator_(C++)?oldid=1121720372&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Assignment_operator_(C++)
is dbo:wikiPageRedirects of dbr:C++_assignment_operator dbr:Copy_assignment_operator dbr:Assignment_operator_in_c++ dbr:Assignment_operator_in_C++ dbr:Operator=
is dbo:wikiPageWikiLink of dbr:C++_assignment_operator dbr:Value_object dbr:Copy_assignment_operator dbr:Assignment_operator_in_c++ dbr:Move_assignment_operator dbr:Assignment_operator_in_C++ dbr:Operator=
is foaf:primaryTopic of wikipedia-en:Assignment_operator_(C++)