Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 680635
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T01:23:40+00:00 2026-05-14T01:23:40+00:00

I have got this code and I am trying to understand the convention followed,

  • 0

I have got this code and I am trying to understand the convention followed, all the method defined in the .cpp file have template<class KeyType, class DataType> written before them. What does that mean?

Example:

//Constructor
template<class key, class type>
MyOperation<key, type>::MyOperation()
{
  //method implementation
}

//A method
template<class key, class type>
MyOperation<key, type>::otherOperation()
{
  //method implementation
}

Thanks

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T01:23:41+00:00Added an answer on May 14, 2026 at 1:23 am

    There has to be a good answer for this already but I’ll throw mine into the pool as well.

    C++ allows for declarations and implementations of program structures to be done separately. It stems from how C/C++ programmers publish new functionality to each other: header files are included in dependent compilation units rather than those units relying on metadata present in compilation (like you would expect if you work with C# or Java).

    Each time you give the compiler an instruction whether it is a declaration (“there will be this thing with this interface”) or an implementation (“here is this thing with this interface and these behaviors”), you have an opportunity to templatize that directive.

    The fact that you have an option to do so, rather than a requirement to do so, gives you a lot more flexibility than you are afforded by more modern languages such as Java and C#.

    Consider the following template (I’m rusty so be kind with minor syntax issues, please):

    template<typename Junk>
    class IGotJunk {
    private:
      Junk myJunk_;
    public:
      void SetJunk(Junk const& source);
      Junk const& GetJunk() const;
    }
    

    Your “typical” implementation of said template might include these default behaviors:

    template<typename Junk>
    void IGotJunk<Junk>::SetJunk(Junk const& source)
    {
      myJunk_ = source;
    }
    

    However, for strings, there is a risk that the string will be modified after the pointer is copied, in which case, you could provide a specialized behavior that ensures the string itself is copied, rather than the pointer (again, it’s been a long, long time)…

    void IGotJunk<char*>::SetJunk(char* const& source)
    {
      free(myJunk_);
      myJunk_ = malloc(strlen(source) + 1);
      strcpy(myJunk_, source);
    }
    

    You could then do something similar for GetJunk(). That is probably why you have to declare the template parameters for each artifact you create: because you might not want them to be the same in every case.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have got this code: XDocument xdoc = XDocument.Load(URI); XElement root = xdoc.Element(forecast); //get
I have got some javascript code and I'd like to convert this to C#.
I have got a piece of code, that should countdown some number (in this
Code is not running on .click when I have this: $(.cancel).click(function() { alert(got here);
I am trying to understand how this piece of self-replicating code works (found here
I was trying to upload large size file on Sharepoint. And got following code
I have got this error when using Enterprise Library 3.1 May 2007 version. We
I have got an XML document which looks something like this. <Root> <Info>....</Info> <Info>....</Info>
So I've got this UpdatePanel. Inside it I have a nifty little jQuery scroll
The responses I've got to this question have solved the problem I had in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.