First stage of a complex calculator implementation in C++ The following code shows the primary data structure of my calculator.

Header file contents :- theCalc.hpp

#ifndef THECALC_H_
#define THECALC_H_

#include "iostream"
#include "utility"
#include "string"
#include "cstring"
#include "cmath"

using namespace std;

class theCalc
{

protected :
    pair &lt;float, float&gt; inputNumberPair;
    pair &lt;float, float&gt; outputNumberPair;
    float flFirstNumber;
    float flSecondNumber;

public :
    void getTheInputs (string firstNumber, string secondNumber);
};


#endif


Implementation file content :- theCode.cpp

#include "theCalc.h"

void theCalc::getTheInputs(string firstNumber, string secondNumber)
{
    flFirstNumber = stof (firstNumber);
    if (!secondNumber.empty())
    {
    flSecondNumber = stof (secondNumber);
    }
    inputNumberPair = make_pair(flFirstNumber, flSecondNumber);

    cout &lt;&lt; inputNumberPair.first &lt;&lt; endl;
    if (!secondNumber.empty())
        {
    cout &lt;&lt; inputNumberPair.second &lt;&lt; endl;
        }
}


Someone to go through the code and please suggest me whether I am doing good in OOP and data structure implementation. Please suggest me is my methodologies good as a robust algorithm or I am making things complicated unnecessarily.

I am now in the learning process and need my code to be reviewed as I am a beginner.

Please take a look at the shared github the following link for the overall code.

https://github.com/arviCV/bHive2
Never write using namespace ... in a header. You're forcing users of your library to do something they almost certainly don't want to do.

Don't pass strings by value. Pass them by const reference (to avoid making copies) or pass them as std::(C++17) (or boost::) string_view. This also doesn't force the caller to use an actual std::string, a string_view being easily constructed even from a char buffer.

Don't mix responsibilities, separate user input from the rest of the code. Using std::cout in your class quickly becomes wrong when you change the user interface to a graphical one, or if the code ends up in a server application that only responds to network requests.