Q:

C++ Templates | Find output programs | Set 1

belongs to collection: C++ find output programs

0

This section contains the C++ find output programs with their explanations on C++ Templates (set 1).

Program 1:

#include <iostream>
using namespace std;

template <Type>
Type getLarge(Type A, Type B)
{
    return (A > B) ? A : B;
}

int main()
{
    cout << getLarge<char>('K', 'L') << endl;
    cout << getLarge<int>(25, 38) << endl;
    cout << getLarge<float>(3.14F, 22.5F) << endl;

    return 0;
}

Program 2:

#include <iostream>
using namespace std;

template <typename Type>
Type fun(Type num)
{
    int f = 1;

    while (num > 0) {
        f = f * num;
        num--;
    }
}

int main()
{
    cout << fun<int>(5);
    return 0;
}

Program 3:

#include <iostream>
using namespace std;

template <typename Type>
Type fun(Type num)
{
    int f = 1;

    while (num > 0) {
        f = f * num;
        num--;
    }
}

int main()
{
    Type<int> fact = 0;

    fact = fun<int>(5);

    cout << fact;

    return 0;
}

Program 4:

#include <iostream>
using namespace std;

template <typename Type>
Type fun(Type num[], int size)
{
    int large = 1;

    large = num[0];
    for (int i = 1; i < size; i++) {
        if (large < num[i])
            large = num[i];
    }
    return large;
}

int main()
{
    int arr[] = { 1, 5, 2, 13, 15, 17, 0, 2 };
    int large = 0;

    large = fun<int>(arr, 8);

    cout << large << endl;

    return 0;
}

Program 5:

#include <iostream>
using namespace std;

template <typename Type>
Type fun(Type num[], int size)
{
    int large = 1;

    large = num[0];
    for (int i = 1; i < size; i++) {
        if (large < num[i])
            large = num[i];
    }
    return large;
}

int main()
{
    int arr[] = { 1, 5, 2, 13, 15, 17, 0, 2 };
    int large = 0;

    large = fun<char>(arr, 8);

    cout << large << endl;

    return 0;
}

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Answer Program 1:

Output:

main.cpp:4:11: error: ‘Type’ has not been declared
 template <Type>
           ^~~~
main.cpp:5:1: error: ‘Type’ does not name a type
 Type getLarge(Type A, Type B)
 ^~~~
main.cpp: In function ‘int main()’:
main.cpp:12:13: error: ‘getLarge’ was not declared in this scope
     cout << getLarge<char>('K', 'L') << endl;
             ^~~~~~~~
main.cpp:12:22: error: expected primary-expression before ‘char’
     cout << getLarge<char>('K', 'L') << endl;
                      ^~~~
main.cpp:13:22: error: expected primary-expression before ‘int’
     cout << getLarge<int>(25, 38) << endl;
                      ^~~
main.cpp:14:22: error: expected primary-expression before ‘float’
     cout << getLarge<float>(3.14F, 22.5F) << endl;
                      ^~~~~

Explanation:

The above program will generate errors because the "typename" keyword is used to define the generic function. The correct way is given below to define the generic function.

template <typename Type> 
Type getLarge(Type  A, Type B) 
{ 
	return (A > B)? A: B; 
} 
 

Answer Program 2:

Output:

120

Explanation:

The above code will print "120" on the console screen. In the above program, we defined a generic function using templates with argument num. This function is used to calculate the factorial of the specified number.

Now coming to the main() function. Here we passed integer value in the function fun(). Then it will return 120 that will be printed on the console screen.

Answer Program 3:

Output:

main.cpp: In function ‘int main()’:
main.cpp:17:5: error: ‘Type’ was not declared in this scope
     Type fact = 0;
     ^~~~
main.cpp:17:10: error: expected primary-expression before ‘int’
     Type fact = 0;
          ^~~
main.cpp:19:5: error: ‘fact’ was not declared in this scope
     fact = fun(5);
     ^~~~

Explanation:

The above code will generate errors because we declared variable fact using "Type", we cannot use "Type" in the main() function.

The "Type" is created using "typename" keyword for function fun(). That's why we can use Type with function fun() only.

Answer Program 4:

Output:

17

Explanation:

The above program will print "17" on the console screen.

In the above program, we created a generic function fun() with array num[] and size. The function fun() is created to find the largest element from the array.

Now coming to the main() function. Here we created the array of integers with 8 elements and created a local variable large. Then call function fun() with array "arr" and size 8.

The function fun() will return the largest element from the array that is 17. Then the final value of variable "large" is 17, which will be printed on the console screen.

Answer Program 5:

Output:

main.cpp: In function ‘int main()’:
main.cpp:22:29: error: no matching function for call to ‘fun(int [8], int)’
     large = fun(arr, 8);
                             ^
main.cpp:5:6: note: candidate: template Type fun(Type*, int)
 Type fun(Type num[], int size)
      ^~~
main.cpp:5:6: note:   template argument deduction/substitution failed:
main.cpp:22:29: note:   cannot convert ‘arr’ (type ‘int [8]’) to type ‘char*’
     large = fun(arr, 8);
                             ^

Explanation:

The above will generate a compilation error because of the below statement.

In this statement, we used char within angle bracket, but we passed an integer array and size. To resolve this problem we need to pass int instead of char.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C++ find output programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
C++ Templates | Find output programs | Set 2... >>
<< C++ Virtual Functions | Find output programs | Set...