© Will Briggs 2021
W. BriggsC++20 for Lazy Programmershttps://doi.org/10.1007/978-1-4842-6306-8_17

17. Operators

Will Briggs1  
(1)
Lynchburg, VA, USA
 
You may have seen this error:
char string1[] = "Hello", string2[] = "Hello";
if (string1 == string2) ...

This condition fails because == for arrays compares memory addresses not contents, and the addresses differ.

This also causes problems:
string2 = string1;
It copies not string2’s contents, but its address, to string1. string1’s contents are lost. This is wasteful and also error-prone:
string2[1] = 'a';    // string1 becomes "Hallo", though it
                     // wasn't even mentioned here!

So let’s make our own string class, forcing the operators to do what we want, and never worry about this again.

Get C++20 for Lazy Programmers: Quick, Easy, and Fun C++ for Beginners now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.