Static 静态 和 this 指针
class Account{
public:
static double m_rate;
static void set_rate(const double& x) {m_rate}
};
double Account::m_rate = 8.0;//静态数据的定义,写在一行代码给变量提供了内存,我们称之为定义
int main()
{
Account::set_rate(5.0);//调用静态函数的方法,一个是通过类直接调用,因为在public;
Account a;
a.set_rate(7.0);//调用静态函数的方法2,通过对象调用
}
Singleton:
class A{
public:
static A& getInstance(return a);
setup() {...}
private:
A();
A(const A& rhs);
static A a;//给定一个静态的对象a
...
};
//更好的写法
class A {
public:
static A& getInstance();
setup () {...}
private:
A();
A(const A& rhs);
...
};
A& A::getInstance()
{
static A a;//函数初始化为a,函数不运行就没有这个对象
return a;
}
为什么cout可以接受各种类型的数据?
cout就是一种ostream
reference:必须初始化,并且从一而终。