C++:static类
Posted liberavi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++:static类相关的知识,希望对你有一定的参考价值。
static自我理解
static使得数据成员或者函数生命周期为整个文件所在程序的生命周期, 在C中还可以用它避免被其它文件使用为外部成员
static类
明确:类的静态数据成员它被所有类对象共享,但它是属于类的,而不是类的对象的
定义静态成员:static只出现在类内部的声明语句中
静态成员函数在类的内部与外部均可以定义(只需要在函数声明前加上static)
class a1
....
static void func1();
;
void a1::func1()...
因为静态数据成员不属于类的任何一个对象,这意味着它们不是有类的构造函数初始化的,必须在类的外部
定义与初始化每个静态数据成员且只能定义一次
并且最好与其它非内联函数的定义放在一个文件下
类内初始化方法:
我们可以为静态成员提供const 整数类型 类内初始值,不过要求静态成员必须是字面值类型的constexpr
eg: static constexpr int period = 30;
静态成员能用于某些场景:
静态数据成员可以是不完全类型:
eg:
class Bar
public:...
private:
static Bar mem1; //OK
Bar *mem2; //OK
Bar mem3; //ERROR
;
我们可以使用静态成员作为默认实参
eg:
class Screen
public:
Screen & clear(char = bkground)
private:
static const char bkground;
;
以上是关于C++:static类的主要内容,如果未能解决你的问题,请参考以下文章