bcb类定义?(50分)

  • 主题发起人 主题发起人 laolor
  • 开始时间 开始时间
L

laolor

Unregistered / Unconfirmed
GUEST, unregistred user!
我想定义一个类Graph,可以初始化一个对象Graph ThisGraph;
然后我选择直线时,在赋值:ThisGraph=ThisLINE;有下面的类定义:
class Graph
{virtual ~Graph()=0;}
class LINE
{~LINE()}
但是这样就不能初始化Graph对象,如果写成virtual ~Graph();则出错为:
[Linker Error] Unresolved external 'Graph::~Graph()' referenced from E:/GRAPHICS/MAIN.OBJ.
怎样才能,既可初始化Graph实例,又能正确析构?
 
看不懂. 怎么看c总觉得乱糟糟的?
 
咦,
>但是这样就不能初始化Graph对象
不太明白,
初始化Graph对象与~Graph()无关吧。
 
C++里面的析构函数不能是Virtual的吧
好像必须是void的,记不清了,应该是
这个方面的问题吧
 
我说错了,应该是构造函数和析构函数都不能有类型
好像也不能虚拟,你去掉virtual在试一下
 
看你的意思好像LINE是Graph的子类,如果这样的话,virtual ~Graph()=0;表明声明了一个纯虚类,纯虚类是不能实例化的,应该这样做:virtual ~Graph(){;}
就可以了
 
在 C++ 里好象没有纯虚的析构函数吧,
应该不写该函数(如果没有申请资源的话)
或写一个空的析构函数
~graph(){
;
}
另:纯虚类不能生成对象
 
不好意思,LINE的定义为:
class LINE: public Graph
{
~LINE();
}
不过高手还是说对了
 
顺便问一下,在这个类中,怎样使用Sleep(300)?
 
后退
顶部