Question about implementing abstract functions in C++?
<p>I am learning and testing a piece of C++ code as follows:</p>

<pre><code>#include "stdafx.h"
#include &lt;iostream&gt;
using namespace std;
#include &lt;conio.h&gt;
#include &lt;cstring&gt;
class Shape {
public:
    Shape() {};
    ~Shape() {};
    virtual void display() const = 0;
    virtual double volume() const = 0;
};

class Square : public Shape {
public:
    Square() {};
    ~Square() {};
    void display() const;
    double volume() const;
};

void Square::display() const {
    cout &lt;&lt; "Square!!!!!!!!!!!!!!" &lt;&lt; endl;
}
double Square::volume() const {
    cout &lt;&lt; "Square Volume........." &lt;&lt; endl;
    return 0.0;
}

int _tmain(int argc, _TCHAR* argv[])
{
    Shape *s;
    s = new Square; // error here
    (*s).display();

    return 0;
}
</code></pre>

<p>The above code does not compile successfully. it produces: "<strong>fatal error LNK1120: 1 unresolved externals</strong>".
Can anyone help me out with that?
I am using MS VS C++ 2005.
Thanks</p>
