C++ Abstract Base Class Problem
<p>So I have run into a problem with my ABC design in C++.  I'm going to use a simplified example from what I actually have.  Please ignore any syntax errors until I get to where my issue is.</p>

<p>So I have an ABC:</p>

<pre><code>class ABC  
{  
public:  
    virtual void DoSomething() = 0;  
};
</code></pre>

<p>Then I have a derived class:</p>

<pre><code>class Derived: public ABC  
{  
public:  
    void DoSomething() { // something }  
};
</code></pre>

<p>In my main logic function I have something along the lines of:</p>

<pre><code>ABC* obj = new Derived;
obj-&gt;DoSomething();
</code></pre>

<p>Now at this point my code works beautifully, I have multiple classes functioning correctly based on if I change the type (manually for now) from one derived class to another using the abstract base class as the type for the derived objects.</p>

<p>Now my issue...</p>

<p>If I want to change my derived class to add in functionality that is not supported by the ABC then my compiler is not recognizing them whatsoever.  For example if I leave ABC the way it is and change Derived to:</p>

<pre><code>class Derived: public ABC  
{  
public:  
    void DoSomething() { // something }  
    void DoSomethingElse() { // something else, not defined in ABC}  
};
</code></pre>

<p>Then back to my main logic function:</p>

<pre><code>ABC* obj = new Derived;  
obj-&gt;DoSomething(); 
// Compiler does not recognize this, due to not being in the "ABC" class   
obj-&gt;DoSomethingElse();
</code></pre>

<p>My compiler keeps giving me errors that "DoSomethingElse()" is not a member of the ABC.  Is what I am trying to do possible?  It feels like I am overlooking something simple but I've hit this road block in my architecture of this piece of software.  Any help is greatly appreciated.</p>
