On 10/12/06, William Xue
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