static静态处理笔记----C++学习之路
来源:互联网 发布:狂人日记读后感知乎 编辑:程序博客网 时间:2024/05/20 04:14
在分类上,static主要分为static data 与static function。
1.静态数据:static data,只能存在一份!举个例子,如果我们不是静态数据,那么可以有多份,例如一个银行类
,里面可以有个账户信息info,那么这个info可以有很多份,不同的人都应该有属于自己的账户,所以不能设置为静
态数据。如果是银行利率rate,那么只要一份,static double m_rate。
2.静态函数,static function,静态函数没有this point,这句话的解释就是:假如一个复数取实部,c1.real();在C中显示
可以为Complex::real(&c1); 这个c1的地址就是this point。所以静态函数没有this point,那么静态函数只能用来处理静态
数据。
静态数据在class外需要定义。
举个例子:
class Account{ 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);} 调用静态函数的方法:1.通过object 2.通过classname
3.static涉及的一个设计模式:singleton
单例模式,确保一个类只有一个单例。
举个例子:
class A{public: static A& getInstance(){return a;} void setup(){........}private: A(); static A a;}把ctor放在private,那么没人能够创建出A的对象,利用getInstance出去唯一的a。
例如:A::getInstace().setup();
但是,当我们没有用过的话,这个静态的a仍然会存在。
所以会有更好的方法:
class A{public: static A& getInstance(){return a;} void setup(){........}private: A();}A& A::getInstance(){ static A a; return a;}这样的话,如果我们使用了一次,之后就会有a出现,但是static 的a在离开scope还会存在,并且只存在一个。
阅读全文
0 0
- static静态处理笔记----C++学习之路
- SpringBoot学习笔记之静态资源处理
- C语言学习笔记之static和extern(十六)
- c语言学习笔记之static和extern关键字
- C语言之static静态变量
- C语言之static静态变量
- C语言之static静态变量
- C语言之static静态变量
- C语言之static静态变量
- C++ 学习记录之静态变量static
- Java学习之静态修饰符:static
- Java学习:static之静态方法
- 学习笔记之关键字static
- 学习笔记1之static
- 基于annotation注解的Spring3 MVC Static Pages Example之四静态页面向学习笔记
- Spring3 MVC Static Pages Example之四静态页面向学习笔记
- Java学习笔记之—Static静态代码块,只执行一次,优先主函数执行。
- 学习笔记之深入浅出MFC 第8章 C++重要特性----静态变量(static)
- 01-环境搭建
- 330. Patching Array (贪心)
- codeforces822c+codeforces612d
- Java基础之接口到底是啥
- mysql开发技巧1
- static静态处理笔记----C++学习之路
- hashtable和hashmap小结
- 宇宙真正的吸引力法则
- Algorithm 4th 1.1 基础编程模型
- Java配置环境变量
- Java设计模式概述
- 素数测试随机算法
- 汇编语言
- opencv学习——常见滤波器形状