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
Does there exist any way to make the command line arguments available to other functions without passing them as arguments to the function?
How would you call C functions from C++ and vice versa?
What is the difference between cin.read() and cin.getline()?
What is the keyword auto for?
What is an accessor in c++?
What is an adaptor class or wrapper class in c++?
Can constructor be private in c++?
How do you flush std cout?
If dog is a friend of boy, and terrier derives from dog, is terrier a friend of boy?
Explain the register storage classes in c++.
Should I learn c++ c?
How are virtual functions implemented in c++?
Why can’t you call invariants() as the first line of your constructor?
How does com provide language transparency?
What is the best c++ book for beginners?