C++/ Restricting the instance of class, which other classes are inherit from it
<p>I want to make a class in C++, which other classes inherit from it. But I want to make sure that no one will be able to make an instance from this class.</p>

<p>Meaning:</p>

<pre><code>class Animal{
public:
virtual ~Animal() {}
};

class Fish: public Animal{
};
</code></pre>

<p>I want to make sure that:</p>

<pre><code>Fish* fish = new Fish();
</code></pre>

<p>would be possible, but </p>

<pre><code>Animal* ana = new Animal();
</code></pre>

<p>would not.</p>

<p>How can I do it?</p>
