Declares a class as being non-sharable.
If a class is non-sharable, then a class implemented in another DLL cannot derive (inherit) from that class.
Declaring a class as non-sharable prevents the compiler from exporting compiler implementation-specific symbols, i.e. run-time type-information and virtual tables. This prevents classes in other DLLs from being able to derive from it.
if a class is marked as non-sharable, then Symbian OS requires all classes that are derived from that class, and which are also implemented in the same DLL, to be declared as non-sharable.
by default, a class is sharable.
NONSHARABLE_CLASS(CMyClass) : public CBase { public : ... private : ... }