用字符串连接我的对象

时间:2013-09-02 21:25:15

标签: c++

我坚持这个例子:

#define Listof(Type) class Type##List \
   { \
   public: \
   Type##List(){} \
   private: \
   int itsLength; \
   };

有人能解释一下这个例子中的意图和要点是什么?因为我在一本书中找到了这个例子,但没有解释。

2 个答案:

答案 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;
}

这意味着代码中使用宏的任何地方都与编写类本身相同。