我正在学习和测试一段C ++代码,如下所示:
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#include <cstring>
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 << "Square!!!!!!!!!!!!!!" << endl;
}
double Square::volume() const {
cout << "Square Volume........." << endl;
return 0.0;
}
int _tmain(int argc, _TCHAR* argv[])
{
Shape *s;
s = new Square; // error here
(*s).display();
return 0;
}
以上代码无法成功编译。它产生:“致命错误LNK1120:1个未解析的外部”。 任何人都可以帮我解决这个问题吗? 我正在使用MS VS C ++ 2005。 感谢
答案 0 :(得分:1)
答案 1 :(得分:0)
我很确定你的问题是你的主要声明。
如果您将其更改为标准主要定义,我相信您的链接问题将得到修复。
int main()
{
Shape *s = new Square(); // error here
s->display();
return 0;
}