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

  • SEARCH
  • Home
  • 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 989101
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T05:44:16+00:00 2026-05-16T05:44:16+00:00

Consider a class like so: template < class T > class MyClass { private:

  • 0

Consider a class like so:

template < class T >
class MyClass
{
  private:
    static T staticObject;
    static T * staticPointerObject;
};
...
template < class T >
T MyClass<T>::staticObject; // <-- works
...
template < class T >
T * MyClass<T>::staticPointerObject = NULL; // <-- cannot find symbol staticPointerObject.

I am having trouble figuring out why I cannot successfully create that pointer object.

The above code is all specified in the header, and the issue I mentioned is an error in the link step, so it is not finding the specific symbol.

  • 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-16T05:44:16+00:00Added an answer on May 16, 2026 at 5:44 am

    I have found two solutions. Neither of them are 100% what I was hoping for.

    1. Explicitely initialize the specific instance, e.g.

      int * MyClass<int>::staticPointerObject = NULL;

    This is not convinient especially when I have a lot of different types.

    1. Wrap the pointer inside the class, e.g.
    
        template < class T >   
        class MyClass   
        {   
          private:   
            struct PointerWrapper   
            {   
              T * pointer;   
              PointerWrapper( void )   
                : pointer( NULL )   
              { }   
            };   
            T staticObject;   
            PointerWrapper staticPointerObject;   
        };   
        ...   
        template < class T >   
        T MyClass<T>::staticObject; // <-- works fine.   
        ...   
        template < class T >   
        MyClass<T>::PointerWrapper MyClass<T>::staticPointerObject; // <-- works fine.
    

    This is a bit of a hassle, but at least usable. Why is it I can instansiate a variable object but not a pointer to a variable object? If anything I would think I’d have more problems the other way around (the compiler knows ahead of time what a pointer looks like, but not what my object looks like).

    If someone has a better answer I’d love to see it!

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

Sidebar

Related Questions

Consider this sample class, class TargetClass { private static String SENSITIVE_DATA = sw0rdfish; private
Consider the following class: class MyClass { public: template<class T> typename T::result_type apply(T& func)
Consider a template class like: template<typename ReturnType, ReturnType Fn()> class Proxy { void run()
Consider the following code: class MyClass { template <typename Datatype> friend MyClass& operator<<(MyClass& MyClassReference,
Consider standard algorithms like, say, std::for_each . template<class InputIterator, class Function> Function for_each(InputIterator first,
Consider the following class template: template <class T> class MyClass { void MyFunc(); };
Consider something like... template<typename T> class Vector { ... bool operator==( const Vector<float> &rhs
Consider: public class HomeController : Controller { private IDependency dependency; public HomeController(IDependency dependency) {
It may not be so obvious how respond_to? works in ruby. Consider that: class
Consider the following: class MyClass { public: int operator ()(int a, int b); };

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.