[Insight-users] What's # in "#thisClass"?

David Gobbi dgobbi at imaging.robarts.ca
Wed Jul 14 15:12:20 EDT 2004


Hi Yuanixin,

The "#" is part of the magic of the C preprocessor.
If you have #thisClass inside the body of the macro,
then the preprocessor puts quotation marks around
the value that "thisClass" expands to.

So   itkTypeMacro(MyClass)

results in

     { return "MyClass";}

For more information, look for "preprocessing" in the index
of your C++ book.

Cheers,
 - David



On Wed, 14 Jul 2004, Yuanxin Zhu wrote:

> Hi there,
>
> I'm new to ITK and haven't touch C++ for quite a few years. While I read
> itkMacro.h, I found the following statement for itkTypeMacro():
>
> #define itkTypeMacro(thisClass,superclass) \
>     virtual const char *GetNameOfClass() const \
>         {return #thisClass;}
>
> My question is what the "#" in front of "thisClass" stands for. My guess
> is that it should be an operator to get the type of a class. But I can
> NOT even spot it in "The C++ Programming Language (3rd Ed.)". Is the book
> is too old to be a C++ reference?
>
> Anyone has a clue?
>
> Thank you in advance.
>
> Yuanxin
>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>



More information about the Insight-users mailing list