原副标题:C++中const和static的促进作用
一、static
1.不考量类的情形
1)暗藏。大部份未加static的自上而下表达式和表达式具备自上而下由此可见性,能在其它文档中采用,加了后 根本无法在该文档所处的校对组件中采用。
2)预设调用为0,主要包括未调用的自上而下动态表达式与局部性动态表达式,都存有自上而下未调用区。
3)动态表达式在表达式内表述,仍旧存有,且只展开一场调用,具备蕨科瓶,其促进作用覆盖范围与局部性表达式完全相同,表达式选择退出后依然存有,但难以采用。
2.考量类的情形
1)static核心成员表达式:只与类关连,不与类的第一类关连。表述时要重新分配内部空间,难以在类新闻稿中初始 化,要在类表述体内部调用,调用时不须要标注为static;能被非static核心成员表达式任 意出访。
2)static核心成员表达式:不具备this操作符,难以出访类第一类的非static核心成员表达式和非static核心成员表达式;难以被新闻稿为const、虚表达式和volatile;能被非static核心成员表达式任一出访。
二、const
1.不考量类的情形
1)const自变量在表述时要调用,后难以更动。
2)const形参能接收const和非const类型的实参,例如
// i 能是 int 型或者 const int 型
void fun(const int& i)
{
//…
}
2.考量类的情
1)const核心成员表达式:难以在类表述内部调用,根本无法通过构造表达式调用列表展开调用,并且 要有构造表达式;不同类对其const数据核心成员的值能不同,所以难以在类中新闻稿时调用const。
2)核心成员表达式:const第一类不能调用非const核心成员表达式;非const第一类都能调用;不能 改变非mutable(用该关键字新闻稿的表达式能在const核心成员表达式中被修改)数据的值。