摘要: 在块作用域中的静态变量的规则 (与之相对的是全局作用域的静态变量) 是, 程序第一次执行到他的声明的时候进行初始化. 查看下面的竞争条件: int ComputeSomething() { static int cachedResult = ComputeSomethingSlowly(); ret 阅读全文
posted @ 2020-11-02 23:53 猿走天下 阅读(393) 评论(1) 推荐(0) 编辑
摘要: C++类的静态成员变量属于该类,在该类所有的对象间共享。 要弄清如何初始化,首先要明白声明、定义、初始化三个概念的不同。 声明:指定变量的名字和类型,可以多次声明。 定义:为该成员变量分配存储空间,有且仅有一个定义。 初始化:为该成员变量赋初值。 在类的声明中,静态成员变量仅完成了声明过程,并没有进 阅读全文
posted @ 2020-11-02 23:01 猿走天下 阅读(2085) 评论(0) 推荐(1) 编辑
摘要: 编译器默认为一个类生成的默认函数 默认构造函数 默认析构函数 默认拷贝构造函数 默认赋值函数 移动构造函数 移动拷贝函数 class DataOnly { public: DataOnly () // default constructor ~DataOnly () // destructor Da 阅读全文
posted @ 2020-11-02 22:31 猿走天下 阅读(281) 评论(0) 推荐(0) 编辑
摘要: c++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。一是个构造器,二是个默认且隐含的类型转换操作 阅读全文
posted @ 2020-11-02 22:05 猿走天下 阅读(887) 评论(0) 推荐(0) 编辑