diff --git a/problem-of-the-day/day12/dev.md b/problem-of-the-day/day12/dev.md index c4dfef5..5b2c8f2 100644 --- a/problem-of-the-day/day12/dev.md +++ b/problem-of-the-day/day12/dev.md @@ -1,16 +1,24 @@ -# Dev Problem Of the Day (08/06/2024) +# Dev Problem Of the Day#12 -## Introduction to Web Sockets +## Operator Overloading -- ### What are Web Sockets? +- ### What is Operator Overloading? - `Web sockets` are defined as a two-way communication between the servers and the clients, which mean both the parties, communicate and exchange data at the same time. + `Operator overloading` is a feature in C++ that allows you to redefine the behavior of standard C++ operators when they are used with user-defined classes or structures. -- ### How are web sockets different from HTTPS? +- ### Points to keep in mind - `Web Sockets` are different because they work by holding the connection from the client to the server open at all times. This way, the server can send information to the client, even in the absence of an explicit request from the client. The WebSocket connection allows for constant communication in the case of new data being created and therefore needing to be rendered client-side. This is how _Gmail_ emails pop up on your feed instantly, without you have to refresh. We call this **_full-duplex_** communication between the server and the client. + - Overloading an operator does not change its precedence or associativity. + - Not all operators can be overloaded in C++. New operators cannot be created. + - The overloaded operator must have at least one operand that is of a user-defined type. + - **Overloading the `<<` operator :** + - This [Link](https://learn.microsoft.com/en-us/cpp/standard-library/overloading-the-output-operator-for-your-own-classes?view=msvc-170) explains with example how `cout` can be overloaded for your own classes. + - **Overloading for comparing objects :** + - This [Link](https://www.learncpp.com/cpp-tutorial/overloading-the-comparison-operators/) gives the implementation to `compare two objects`. - ### Resources - - This [link](https://blog.teamtreehouse.com/an-introduction-to-websockets?source=post_page-----10b131182559--------------------------------) gives a brief introduction to everything you need to know about Web Sockets. - - This [documentation](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API) will help in implementing web sockets. + - This [link](https://learn.microsoft.com/en-us/cpp/cpp/operator-overloading?view=msvc-170) contains everything you need to know about operator overloading and its implementation. + - This [documentation](https://en.cppreference.com/w/cpp/language/operators) can also be referred for implementation. + + #### Do implement and experiment in C++ to get a better understanding of the concept!