title: Handling both static and non static functions in c++
body: <p>I have a c++ class, part of its defintion is:</p>
  <pre><code>template &lt;class InputClass&gt;
  class MyClass
  </code></pre>
  <p>And <code>InputClass</code> is defined as a child class of MyClass:</p>
  <p><code>class InputClass: public MyClass&lt;InputClass&gt;</code></p>
  <p>there are many places in MyClass that has this call:</p>
  <pre><code>InputClass::AttributeName()
  </code></pre>
  <p>Where <code>AttributeName()</code> is defined on different child classes of InputClass as:</p>
  <p><code>static std::string AttributeName</code></p>
  <p>However, recently, there's specific child class of InputClass in which we have to define attributeName as non static, because we want different instances of this new child class to NOT share <code>AttributeName</code>):</p>
  <p><code>std::string AttributeName</code></p>
  <p>What modifications can I make such that I can still <code>AttributeName()</code> either as a static or non-static variable from inside <code>MyClass</code> ?</p>