初学VC,请教一个问题!感谢各位
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream.h>
class Shape
{
public:
virtual void draw() = 0;
};
class Rectangle: public Shape
{
public:
void draw()
{
printf("ddddddd");
}
};
class Circle : public Shape
{
public:
void draw()
{
printf("ddddddd");
}
};
int main(int argc, char* argv[])
{
Shape a;
return 0;
}
为什么编译 时老说我没有实例话这个类呢?谢谢大家回答!
问题点数:10、回复次数:4Top
1 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2005-11-03 19:57:47 得分 4
Shape a;不对!Shape是纯虚类!不能实例化
要继承
Rectangle a;
Circle a;这2个都可以Top
2 楼djfu(飞龙在天)回复于 2005-11-03 22:28:26 得分 4
呵呵,你的C++要好好学学了,Shape就是一个纯虚类,它只是提供一个抽象接口,由其它的类来继承并实现这个接口,是不能实例化的。
但是你上面的Circle、Rectangle是具体类,可以实例化。Top
3 楼Snow_Ice11111(雪上加冰)回复于 2005-11-03 22:46:43 得分 2
error C2259: 'Shape' : cannot instantiate abstract class due to following members:
上面的出错提示已经告诉你了“无法实例化一个抽象类”了。Top
4 楼bjheyun(清醒)回复于 2005-11-03 22:57:11 得分 0
谢谢了。Top




