Consider a c++ template funtion
template<class T>
T& Add(T a, T b){return a+b ;}
if this function is called as
T c = Add("SAM", "SUNG");
what will happen? What is the problem in the template
declaration/ How to solve the problem.
Answer Posted / skc
The error is adding Two pointers isn't alowed in C/C++.
The compiler imlicitly treats "SAM" as const char*. We need
to write a function with "explicit" keyword declaration like
explicit char * Add (const char* x1, const char* x2)
{
// check for null pointers.
// allocate strlen(x1)+strlen(x2)+1 using malloc
// say char*a1 = malloc...;
// check if malloc returns null..take corrective actions
// strcpy (a1, x1);
// strcat (a1, x2);
//strcat (a1, '\0');
return a1; // ask the caller to free the memory allocated
// for a1
}
since this function is writen explicit the compiler will
invoke this function and not call the default template
function.
this is what appears to me. haven't coded and verified.
// Regards, SADIQ
| Is This Answer Correct ? | 4 Yes | 4 No |
Post New Answer View All Answers
How to defines the function in c++?
In which situation the program terminates before reaching the breakpoint set by the user at the beginning of the mainq method?
How long does it take to get good at leetcode?
Write a C++ Program to check whether a number is prime number or not?
Do class declarations end with a semicolon?
What is the difference between mutex and binary semaphore?
How static variables and local variablesare similar and dissimilar?
Can I learn c++ without knowing c?
Differences between private, protected and public and give examples.
How can you quickly find the number of elements stored in a dynamic array?
What is nested class in c++?
What is the use of seekg in c++?
What is the best c++ compiler?
If there are two catch statements, one for base and one for derived, which should come first?
Write a Program for find and replace a character in a string.