C++ - 命名空间与静态函数

6 c++

可能重复:
命名空间+函数与类上的静态方法

我想将类似的功能组合起来.我可以用两种方式之一做.对我来说,它们只是语法上的差异......最后它并不重要.这个观点准确吗?

命名空间:

namespace util
  {
  void print_array(int array[])
    {
    int count = sizeof( array ) / sizeof( array[0] );
    for (int i = 0; i <= count; i++) cout << array[i];
    }
  }
Run Code Online (Sandbox Code Playgroud)

类:

class Util
  {
  public:
    static void print_array(int array[])
      {
      int count = sizeof(array);
      for (int i = 0; i <= count; i++) cout << array[i];
      }
  };
Run Code Online (Sandbox Code Playgroud)

打电话给

Util::print_array()  // Class
Run Code Online (Sandbox Code Playgroud)

要么

util::print_array()  // Namespace
Run Code Online (Sandbox Code Playgroud)

Cat*_*lus 5

第二种方式是愚蠢和完全废话.类不是名称空间,不应该这样使用.

此外,代码是错误的,sizeof(array)不会返回您的想法.

  • @KerrekSB:功能也是.好处是部分专业化,但如果你知道这一点,你就不会问这样的愚蠢问题. (2认同)
  • “完全无意义”的说法似乎有点过分了:如果编译器会编译它并且它具有所需的效果,那么从定义上来说它是有意义的。“愚蠢”更主观,但你仍然应该支持它。因此,请解释*为什么*您认为类不应该以建议的方式使用。 (2认同)