Answer:
see explaination
Step-by-step explanation:
//templateFunctions.h file
#ifndef TEMPLATEFUNCTIONS_H
#define TEMPLATEFUNCTIONS_H
#include <iostream>
using namespace std;
#include "templateClass.h"
//FIX ME: Complete the header of the function template findMax()
// This function takes the array of any type as input and return its maximum value
template <typename T>
T findMax(const T arr[], int nelems)
{
T max = arr[0];
for (int i = 1; i < nelems; i++)
{
if (arr[i] > max)
max = arr[i];
}
return max;
}
//
// FIX ME: Implement the swapPairObjs() function that swaps the two objects of MyPair
template<typename T1, typename T2>
void swapPairObjs(MyPair<T1,T2>& object1, MyPair<T1,T2>& object2)
{
T1 temp1_left=object1.getLeft(),temp2_left=object2.getLeft();
T2 temp1_right=object1.getRight(),temp2_right=object2.getRight();
object1.setLeft(temp2_left);
object2.setLeft(temp1_left);
object1.setRight(temp2_right);
object2.setRight(temp1_right);
}
#endif
//templateClass.h file
#ifndef MYPAIR_H
#define MYPAIR_H
// FIX ME: please provide the proper template prefix for the MyPair class template
template <typename T1, typename T2>
class MyPair {
public:
MyPair(T1 _left, T2 _right);
T1 getLeft();
T2 getRight();
void setLeft(T1 _left);
void setRight(T2 _right);
private:
T1 left;
T2 right;
};
//FIX ME: Complete the definition of the constructor MyPair(T1 _left, T2 _right)
// that will assign value _left to the left variable and _right to right.
template<typename T1, typename T2>
MyPair<T1,T2>::MyPair(T1 _left, T2 _right)
{
left=_left;
right=_right;
}
//FIX ME: Complete the definition of the getLeft() function
template<typename T1, typename T2>
T1 MyPair<T1,T2>::getLeft()
{
return left;
}
//FIX ME: Complete the definition of the setLeft() function
template<typename T1, typename T2>
void MyPair<T1,T2>::setLeft(T1 _left)
{
left=_left;
}
//FIX ME: Complete the definition of the getRight() function
template<typename T1, typename T2>
T2 MyPair<T1,T2>::getRight()
{
return right;
}
//FIX ME: Complete the definition of the setRight() function
template<typename T1, typename T2>
void MyPair<T1,T2>::setRight(T2 _right)
{
right=_right;
}
#endif // !MYPAIR_H