This blog is about providing theory as well as simple executable codes of different programming languages such as java, C, C++, and web programming, etc. This blog will be helpful to the IT students to learn about programming.

Tuesday, February 28, 2023

List different types operators which cannot be overloaded? Write a program to read two strings and concatenate them showing the example of operator overloading.

 Operators that cannot be overloaded in C++ are:

  1. The scope resolution operator (::)
  2. The member selector operator (. or .*)
  3. The ternary operator (?:)
  4. The sizeof operator
  5. The typeid operator
  6. The comma operator (,)

Here's an example program that demonstrates operator overloading to concatenate two strings:

#include <iostream>
#include <cstring>
using namespace std;
class String {
  private:
    char* str;
  public:
    String() {
        str = new char[1];
        *str = '\0';
    }
    String(const char* s) {
        str = new char[strlen(s) + 1];
        strcpy(str, s);
    }
    ~String() {
        delete[] str;
    }
    String operator+ (const String& s) {
        String result;
        delete[] result.str;
        result.str = new char[strlen(str) + strlen(s.str) + 1];
        strcpy(result.str, str);
        strcat(result.str, s.str);
        return result;
    }
    void display() {
        cout << str << endl;
    }
};
int main() {
    String s1 = "Hello ";
    String s2 = "World";
    String s3 = s1 + s2;
    s3.display();
    return 0;
}

In the above program, we have defined a class String with a private data member str which is a pointer to character. We have overloaded the + operator to concatenate two String objects. In the operator+ function, we have created a new String object result and allocated memory for it. We then copy the first string to result, followed by concatenating the second string. Finally, we return the result object.

In the main() function, we create three String objects s1, s2, and s3. We initialize s1 and s2 with two strings, and then we concatenate them using the overloaded + operator to get s3. Finally, we display the contents of s3.

No comments:

Post a Comment

If you have any doubts, please let me know

Slider Widget