On 10/12/06, William Xue <william.xue@gmail.com> wrote:
It's just a example. Could you tell me why they use a macro to declare a
abstract base class,
instead of dircetly using '=0' ?
I don't conceal what I have thought, they define the macro is only for
design, overengineering,
Just like "format" here.
For, if I did not know this MACRO, it's hard to understand what's the
meaning of 'int foo(...) PURE;',
but it's very clear of 'int foo(...) = 0;', even if I am a beginner of
C++, isn't it?
PURE is only one of examples in codes of, as you said, polymorphic design.
It's hard to understand,
hard to study those technologies when there are a large number of these
MACROs, essentially,
they can be a little easier.
Well, this is another topic.
IIR/UC, MS used PURE because the code actually compiled in both C and C++. Under C++ it became '=0', but under C it was empty (I think). Basically, you often saw this in interface definitions for COM objects, which, under C, compiled into a struct of function pointers, and under C++ as a pure interface class (and in memory, looked the same either way).
Tony