static
- 每个类的对象都有一个默认的this指针,它指向调用成员函数的对象,通过this指针访问对象的数据
- 静态数据一个类只有一份,例如银行账户类中的利率设计为静态数据
- 静态函数没有this指针,不能像一般的成员函数那样去访问类数据,只能处理静态数据
class Account{
public:
static double m_rate;
static void set_rate(const double& x){ m_rate = x;}
};
double Account::m_rate = 8.0;
int main(){
Account::set_rate(5.0);
Account a;
a.set_rate(7.0);
}
- 静态数据一定要在类外定义数据值
- 调用静态函数的方式有两种
- static示例,单例模式,见(一)
函数模板
template <class T>
inline
const T& min(const T& a, const T& b)
{
return b < a ? b : a;
}
- 编译器会对函数模板进行实参推断
- 上例中要对运算符<进行重载,这是调用该函数时传入实参的类型的设计者应该考虑的,而不是函数模板的设计者该考虑的