【发布时间】:2014-03-25 18:51:05
【问题描述】:
Shape_class=class(tobject)
Constructor create;
Destructor Demolish;
Public
Shape:tshape;
Shape_width,
Shape_height,
Shape_left,
Shape_top:integer;
End;
Function add_shape
:Shape_class;
Begin
Result:=shape_class.create;
End;
代码已简化,但说明了我的代码中发生的情况。调试器会忽略对构造函数的调用。如果我将指针悬停在调用中的 class_name 标识符上,则提示会通知我“链接器消除的符号”。
我不知道是什么原因造成的。我想知道它是否与堆栈的大小有关,但是增加堆栈没有区别。
【问题讨论】:
-
请添加SSCCE
-
如果有任何有价值的答案可以接受,请检查您的旧问题。
-
顺便说一句,您的
Demolish析构函数永远不会使用Free调用。析构函数应该声明为destructor Destroy; override; -
-1 您提供了不完整的代码,而提供完整的程序很容易。关于细节的编程。
-
令人惊讶的是,您不会提供 SSCCE。如果你这样做了,我们可以回答。不,当您调用 Free 时,不会调用 Demolish。免费通话销毁。在 TObject 中声明的虚拟 Destroy。很多人都告诉过你。如果您认为我们都是无知和错误的,那您可能是在浪费时间向我们提问。
标签: class delphi linker delphi-7 debug-symbols