一个目录下有很多*。H文件,支持通配符include吗?
另外:在代码中还有以下的方法 SwitchPlay::Register();
 SetPlayStatus::Register();
 MotionMode::Register();
上面三行语句是三个类中定义的静态方法。这样的类今后在我的代码中还要定义几百个,那样的话,代码中将会有几百个类似的语句,不知如何调整代码架构,优化一下这种重复代码的坏味道?
希望设计模式方面的高手指点!
例如:是否可以定义一个数组,其中放的是所有类名(可能有几百个!),然后用一个循环语句,取出所有的类名,转换成相应的类后,再调用这类的Register()方法即可。

解决方案 »

  1.   

    可以设置工程属性C/C++ / General / Additional Include Directories,这里加
      

  2.   

    这个属性不是干这个的,它只是让你的在包含时如果不指定路径的话,编译器去这个目录找!
    C++中没有这种方法的包含,因为在绝大多数情况下,都不会有这样的需求
    如果你独特的设计需要这个,可以单独写一个.h文件,这个文件包含你目录中所有的头文件,然后其他cpp文件只要包含这个头文件即可
      

  3.   

    比较常见的方法有:
    1. 为这些类定义一个共同的根类Base
    2. 把你这些函数都定义成根类的虚函数
    3。 base类中定义一个init函数,调用上述函数
    3. 根类内部定义一个静态的vector,用于保存类型为Base*
    4. 根类的构造函数把this指针插入到vector中
    5. 每个你派生的类都在其cpp中定义一个静态实例,这样这个静态实例会自动把自己加入上面那个vector(由于基类指针作用)
    6. 在你主程序入口函数中,枚举vector中的每个指针,分别调用init
      

  4.   

    C++的OO特性让你可以不包含任何.h,只要有base就可以工作了。如果你需要包含每个类的.h,说明你还没搞懂OO
      

  5.   

    哦,sorry,那应该是我弄错了,确实是的