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


Please Help Members By Posting Answers For Below Questions

What do you mean by function and operator overloading in c++?

613


What are iterators in c++?

599


What is boyce codd normal form in c++?

698


Is c++ proprietary?

582


Is c++ vector dynamic?

574






an operation between an integer and real always yeilds a) integer result b) real result c) float result

712


Can the operator == be overloaded for comparing two arrays consisting of characters by using string comparison?

569


What do you mean by public protected and private in c++?

603


What is meant by the term name mangling in c++?

524


When is the destructor called?

608


What are static variables?

619


What is the word you will use when defining a function in base class to allow this function to be a polimorphic function?

674


What does scope resolution operator do?

605


Will the following program execute?

563


What is the error in the code below and how should it be corrected?

311