是的,诚然 class 的一个功能也是名字空间
而且这个在库开发上也有应用体现,例如STL中对float,int等内部数据类型的界定的实现
声明时可以用
class C
{
static int i;
}
但是他们的调用机制是有区别的
你说是调用一个类的方法开销少呢?还是调用一个全局的单独的函数开销少
如果我想调用一个类中的函数(假设不是静态的函数),我就得进行实例化,才能调用
那么实例化的开销谁来负责呢?如果不想实例化,好的,全声明成静态函数
^_^,这个开销也是非常的惊人啊,编译器也需要为这个类的所有的静态成员预先分配空间
但是namespace就不同了,它不需要实例化,也不需要将那些函数全声明为静态的成员
仅仅是
using namespace std;
就可以完成对std中封装的各种方法的调用,而不用再让系统有那么大的开销啊。