final
final的作用:
1. 修饰变量,变量的引用地址不可变,但是地址中的内容可以变。
2. 修饰方法,方法不可被重写,但是还是可以重载
3. 修饰类,类不可继承。
类不能继承
虚函数不能被重写
union(统一数据多种数据格式输出)
union dt
{
int a; char b; double c;
}data;
union长度取决于其中定义的最长数据成员
在一个union内可以定义多种不同的数据类型,这些数据共享同一段内存
也就是如果先存放 data.a = 2; 再调用data.b = ‘z’ 那么前面的2就会被覆盖垫掉
例如
union dt
{
int a; char b; double c;
}data;
dt q;
int main()
{
q.a = 2;
cout <<"q.a="<< q.a<<endl; //输出2
q.b = 'c';
cout << "q.a = " << q.a << endl;//输出99 因为他是按int数据格式输出的
cout << "q.b=" << q.b << endl;//输出c
}
register
register变量 register int a= 1;
它是把变量存储在cpu中的寄存器中,当一个变量需要反复读写时,不需要反复的访问内存,而直接可以使用它,并且,register是一个建议型的关键字,编译器可能会因为变量不满足一定条件而放弃使用寄存器变量。一般情况下将局部自动变量和函数形参作为寄存器变量。
所以当定义一个静态变量为寄存器变量,编译器不会通过,它仍然还是静态变量