Site icon Learn C++

What Is A Trivial Copy Assignment Operator In C++?

What Is A Trivial Copy Assignment Operator In C++

In the C++ language, one of the features of object-oriented programming (OOP) is the copy assignment operator that is used with “operator=” to create a new object from an existing one. In this post, we explain answer the question “what is a trivial copy assignment operator in C++”.

What are classes and objects in C++?

Classes are defined in C++ using 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, most of the commands are associated with classes and objects, along with their attributes and methods. Here is a simple class example:

[crayon-6681e10e22383465974912/]

Now we can create our objects with this Type of myclass as shown below.

[crayon-6681e10e22390768301433/]

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 forced (defaulted) copy assignment operator with default option;

Syntax (Since C++11),

[crayon-6681e10e22393903972651/]

here is an example in a class,

[crayon-6681e10e22397951439070/]

This default copy assignment operator is declared automatically in a new class declaration, it is implicitly-defined or defaulted copy assignment operator and also a trivial copy assignment operator.

What is a trivial copy assignment operator in C++?

The trivial copy assignment operator is default operator 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

[crayon-6681e10e2239a976928162/]

this is same as below,

[crayon-6681e10e2239c543127919/]

As you see both are examples are same at runtime, because this is default in any class declaration and it is automatically declared. And here is how you can use this “=” copy assignment operator on the objects of one of these given class examples,

[crayon-6681e10e2239e357501117/]

The trivial copy assignment operator is a default copy assignment operator that copies the given class object to a new class object. It has the same mechanics as the std::memmove method. All C language data types are trivially copy-assignable, which means the trivial copy operator is compatible with them.

When you create a simple class it has a trivial copy assignment operator.

It is trivial if the class has;

Is there a simple example of a trivial copy assignment operator in C++?

After these useful information above, let’s give an example to trivial copy assignment operator. Lets assume that, we TmyclassA as a base class and we have a new TmyclassB class.

[crayon-6681e10e223a3409577504/]

This new class can use the copy assignment operator from the TmyclassA as in the example below.

[crayon-6681e10e223a5505818015/]

As you see, here, because of : public TmyclassA part, this TmyclassB class has trivial copy assignment operator from TmyclassA. Now we can use this in the copy of class objects as below.

[crayon-6681e10e223a8243227475/]

Is there a full example of a trivial copy assignment operator in C++?

Here is an example with a copy assignment operator in a class.

[crayon-6681e10e223aa948517142/]

here is the output”

[crayon-6681e10e223ad259134187/]

As you see, in Modern C++, we can simply use the trivial copy assignment operator in other sub classes in C++ without any declaration.

C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, MacOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.

There is a free C++ Builder Community Edition for students, beginners, and startups; it can be downloaded from here. For professional developers, there are Professional, Architect, or Enterprise version.

Exit mobile version