Skip to main content

Featured

say hello world with C++ - Solution in Hacker Rank - hackerranksolutions8

  Objective This is a simple challenge to help you practice printing to  stdout . You may also want to complete  Solve Me First  in C++ before attempting this challenge. We’re starting out by printing the most famous computing phrase of all time! In the editor below, use either  printf  or  cout  to print the string  Hello ,World!  to  stdout . The more popular command form is  cout . It has the following basic form: cout<<value_to_print<<value_to_print; Any number of values can be printed using one command as shown. The  printf  command comes from C language. It accepts an optional format specification and a list of variables. Two examples for printing a string are: printf("%s", string);   printf(string); Note that neither method adds a newline. It only prints what you tell it to. Output Format Print   Hello ,World!   to stdout. Sample Output Hello, World! Solution:- //Say Hello, ...

Overloading Ostream Operator in C++ – Hacker Rank Solution

 

Problem

The task is to overload the << operator for Person class in such a way that for p being an instance of class Person the result of:

std::cout << p << " " << <some_string_value> << std::endl;

produces the following output:

first_name=<first_name>,last_name=<last_name> <some_string_value>

where:

  • <first_name> is the value of p’s first_name_
  • <last_name> is the value of p’s last_name_
  • <some_string_value> is an arbitrary std::string value

Input Format :

The input is read by the provided locked code template. In the only line of the input there are 3 space-separated strings first_name, last_name, event. The values of first_name and last_name will be used to create an object p of type Person. The value of event will be used by the provided code to produce the output.

Constraints :

Each word in the input contains only English letters and is no longer than 15 characters

Output Format :

The output should be produced by the provided locked code template. This code will use the implementation of Person public methods and the overloaded << operator to produce the output. Specifically, the output wiil be produced by the following code:

cout << p << " " << event << endl;

Sample Input :

john doe registered

Sample Output :

first_name=john,last_name=doe registered

Solution :

//Overloading Ostream Operator in C++ - Hacker Rank Solution
#include <iostream>

using namespace std;

class Person 
{
public:
    Person(const string& first_name, const string& last_name) : first_name_(first_name), last_name_(last_name) {}
    const string& get_first_name() const 
    {
      return first_name_;
    }
    const string& get_last_name() const 
    {
      return last_name_;
    }
private:
    string first_name_;
    string last_name_;
};

// Enter your code here.
/* Overloading Ostream Operator in C++ - Hacker Rank Solution START */
ostream& operator<<(ostream& Output, Person& p) 
{
  Output << "first_name=" << p.get_first_name() << ","
         << "last_name=" << p.get_last_name();
  return Output;
}
/* Overloading Ostream Operator in C++ - Hacker Rank Solution END */

int main() 
{
    string first_name, last_name, event;
    cin >> first_name >> last_name >> event;
    auto p = Person(first_name, last_name);
    cout << p << " " << event << endl;
    return 0;
}

Comments