名字空间(namespace)
1,只能在全局范畴定义,但他们之间可以相互嵌套
2,在namespace定义的结尾,右大括号后面不必跟一个分号
3,可以在多个文件中用一个标志符来定义,就好象重复定义一个类一样
#include <iostream>
#include "t1.h"
using namespace std;
using namespace MyLib;
int main()
{
cout<<TT1<<endl;
cout<<TT2<<endl;
return 0;
}
test1.cpp: In function ‘int main()’:
test1.cpp:8: error: ‘TT2’ was not declared in this scope
[matcha-vanilla@localhost test]$
t2.h
namespace MyLib
{
const int TT2=10;
}
t1.h
namespace MyLib
{
const int TT1=20;
}
```
4。一个名字可以用另一个名字来做他的别名
5.我们不能像类一样去创建一个名字空间的实例。
局部类中不能又静态成员
编译时常量可以用枚举类型,也可以用静态 常量
对所有的静态数据成员,必须提供单一的外部定义,这些定义必须又内部链接,初始化静态数组的方法与其他集合类型的初始化一样,但不能用自动计数,除此之外在类定义结束时,编译器必须又足够的信息来创建对象,包括所有成员的精确大小。
静态成员函数为类服务,而不是为一个对象实例服务,只能访问静态数据成员,没有this,用static制定的一个类的所有对象占有相同的一块内存,函数可以并行使用他,证明一个局部变量只有一个拷贝,函数每次调用都算使用他。
C++提供连接转换制定,重载extern实现的extern “C” 函数声明
重载在一个类之间,多态类与子类间