很多人看到class,就认为是oo,这是一个误区。class并不等于oo,oo强调的是object而不是class,class只是它的实现手段之一。基于这样的误区,有人认为下面的做法是错误的:

  1. class CMyClass 
  2. public
  3.     static void foo(); 
  4.     static void woo(); 
  5.     static void zoo(); 
  6. }; 
理由是CMyClass没有属性没有状态,所以不是oo,这个理由说得过去,但因此认为这样做是错误的,又有点过于认真。如同能protected就不public一样,能不是类的成员就不要作为类的成员,这是划分类的行为的一个原则,不要强制给人家赋予某种不属于它的职责。但是上面这个例子中的class已经不是对象类,也许最好的改变是将class改成namespace,这样从字面上也吻合了。但是OO也从未说class就是对象,OO只有三大特点:封装、继承和多态。上面例子的class作用上完全等同于namespace,它只是对相同功能的管理,作用主要体现在可以防止名字冲突,同时也更更于使用,特别是有自动提示的编程工具相结合时,否则下拉列表框会显示一大把,而且画设计图时,如果不对社类全局函数进行分类,这个图也很难画下去。。