What Is A Copy Assignment Operator in C++?
Object-Oriented Programming (OOP) is a method of mapping real-world objects and data to computer functions and data structures. Classes and Objects are part of object-oriented methods and typically provide features such as properties and methods. One of the features of an OOP Editor is a copy assignment operator that is used with “operator=” to create a new object from an existing one. In this post, we explain what a copy assignment operator is along with some C++ examples. What are classes and objects in C++? Classes are defined in C++ using the keyword class followed by the name of the class. Classes are the blueprint for the objects and they are user-defined data types that we can use in our program. Objects are an instantiation of a class, In C++ programming, because it is designed to be strongly object oriented most of the commands are associated with classes and objects, along with their attributes and methods. Here is a simple class example below. class myclass { public: std::string str; }; What is a copy assignment operator in C++? The Copy Assignment Operator in a class is a non-template non-static member function that is declared with the “operator=“. When you create a class or a type that is copy assignable (that you can copy with the = operator symbol), it must have a public copy assignment operator. Here is a simple syntax for the typical declaration of a copy assignment operator which is defaulted, Syntax (Since C++11). class_name & class_name :: operator= ( const class_name& ) = default; Here is an example in a class. Tmyclass& operator=(const Tmyclass& other) = default; // Copy Assignment Operator Is there a simple example of using the copy assignment operator in C++? The forced copy assignment operator is default in any class declarations. This means you don’t need to declare it as above, let’s give examples without using it. Let’s give a simple C++ example to copy assignment operator with default option, here is a simple class. class myclass { public: std::string str; }; Because this is default in any class declaration, and it is automatically declared. This class is same as below. class myclass { public: std::string str; Tmyclass& operator=(const Tmyclass& other) = default; // Copy Assignment Operator }; And here is how you can use this “=” copy assignment operator with both class examples above. Tmyclass o1, o2; o2 = o1; // Copy Assingment Operator Is there a full example of how to use the copy assignment operator in C++? An example with a copy assignment operator in a Class. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include #include class Tmyclass { public: std::string str; // Tmyclass& operator=(const Tmyclass& other) = default; // Copy Assignment Operator }; int main() { Tmyclass o1, o2; o1.str = “LearnCplusplus.org”; o2 = o1; // Using Copy Assingment Operator std::cout
