问题如下:
  我现在写的一个程序,虚拟了几百个工程零件,声明了一个类去管理这些零件的属性,在实际运用中,一般情况下,我想到要声明几百个这些零件的对象,并且要为每个零件赋上不同的属性,包括零件的大小,颜色等等。这是一种比较正规的做法,但是这样写的话,负责初始化的cpp文件可能就有上万行,这并不合规范。
  所以想请教大家,有什么更好的办法解决这个问题,望大家说的具体一些,先谢谢了。

解决方案 »

  1.   

    进一步的抽象出可以继承的类,层次可以简化外层接口(一点点性能上的损失)
    使用默认值,通常很多属性应该都是默认的,取非默认值的时候才需要赋值
    将属性分组做成结构数据,ZeroMemory的初始化看起来简单明了
    使用一组SetXXXX(....);分别设定各种属性,属性多了,尽可能封装完整,不要暴露在外
    上万行代码的函数也没有什么关系,假如你做的不是一个玩具,应该不需要遵守关于制作玩具的规定:)重要的是程序要健壮
      

  2.   

    外部 ini xml这样的配置文件
      

  3.   

    谢谢你详细的回复,想一想也是,函数代码长倒问题不大。
    再问一个小小的问题,比如,我管理零件的类是一个叫做lingjian.cpp文件,里面有setXXX()函数可以设置属性,但因为初始化的代码行太多,我想把初始化的上万条语句放到一个专门的init.cpp文件里,这该怎么做?
      

  4.   

    可以使用二进制格式的文件,或者使用简单的数据库,比如access之类的。
    当然,如果你不考虑效率的话,加密也可以。
      

  5.   

    ZeroMemory之类的函数应该用于平板结构,在C++领域这种需求不是很多,在有类和构造函数的机制下,使用zeromemory的几乎应该尽量减少到接近于0,因为构造函数才应该知道怎么初始化自己,zeromemory怎么能确保类的正确性?