我坚持这个例子:
#define Listof(Type) class Type##List \
{ \
public: \
Type##List(){} \
private: \
int itsLength; \
};
有人能解释一下这个例子中的意图和要点是什么?因为我在一本书中找到了这个例子,但没有解释。
答案 0 :(得分:2)
ideam是在使用宏时创建一个MyTypeNameList类Listof(MyTypeName)
这是创建一个名为XXXXList的类的快捷方式,该类使用默认的CTOR声明,并且成员为itsLength;
代码中的示例:
//declare a class
Listof(A)
在预处理器之后这是
class AList{
public:
AList(){}
private:
int itsLength;
};
答案 1 :(得分:1)
它是Macro,这个特殊的扩展到类的定义,例如
Listof(String)
将扩展为:
class StringList
{
public:
StringList(){}
private:
int itsLength;
}
这意味着代码中使用宏的任何地方都与编写类本身相同。