码迷,mamicode.com
首页 > 编程语言 > 详细

C++:static类

时间:2019-09-22 19:38:34      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:http   stat   ++   round   image   静态成员   code   避免   现在   

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类

标签:http   stat   ++   round   image   静态成员   code   避免   现在   

原文地址:https://www.cnblogs.com/Liberavi/p/11568543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!