背景

从学习C++到使用现在,发现很多新的东西,正好整理一下。

static 为静态,指是当类编译加载的时候,内存就会开辟存储空间的。

static 数据成员

在类中,static 可修饰 类中的成员,其作用:所有的对象都共享该内存。(相当于对整个类来说只有一个 对应 static 修饰的成员)

  1. 定义一个 static 成员:
    语法:static + 普通的数据成员
class box
{
public:

private:
    //  定义一个 static 成员 st
    static int st;
};
  1. 初始化:一般放在的类的外部【经常漏掉】
    语法:static成员的类型 类名::该static成 = 表达式
int box::st = NULL; //编译器底层分配内存
  1. 访问:
    static 成员有2种访问形式
  • 类的内部:与普通的数据成员一致
class box
{
public:
    show()
    {
        printf("%p\n", st);
    }
private:
    static int st;
};
  • 类的外部:
    1)通过对象来访问静态的数据成员
box bb;
bb.st = 520;

2)通过域的限定符直接访问(参考 上文的初始化)

int box::st = NULL; //编译器底层分配内存

static 方法成员

在静态方法中, 不能访问非静态的成员。

  1. 定义 一个 static 方法:
    语法:static + 普通的函数成员

  2. 访问:
  • 类的内部:和普通的成员一致
  • 类的外部:
    1)支持通过对象来访问静态的成员
    2)支持通过域的限定符直接访问

C++ 类 与 static的更多相关文章

  1. 高级类特性----static关键字

    static 关键字 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 我们 ...

  2. java 类中 static 的使用

    在类中 static 主要修饰变量,方法及代码块.大致的执行和使用,据个人理解如下: 1.修饰变量: 在修饰变量时,如 ,表示该变量是静态变量,也可称为类变量.当当前变量是静态变量时,该变量被该类的所 ...

  3. String类、static、Arrays类、Math类

    String类.static.Arrays类.Math类 String类.static.Arrays类.Math类 String类.static.Arrays类.Math类 String类.stati ...

  4. Java类中static的用法

    关于Java中static的使用有以下四种情况: 1.静态成员变量         被static修饰的成员变量,叫静态成员变量或类变量:没有被static修饰的变量,叫实例变量. 两者的区别是:  ...

  5. 千万别在Java类的static块里写会抛异常的代码!

    public class Demo{ static{ // 模拟会抛异常的代码 throw new RuntimeException(); } } 如果你在Java类的static块里写这样会抛异常的 ...

  6. C++11类内static成员变量声明与定义

    众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享. 在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中. 因 ...

  7. 01 语言基础+高级:1-3 常用API第一部分_day08【String类、static、Arrays类、Math类】

    day08[String类.static.Arrays类.Math类] String类static关键字Arrays类Math类 教学目标能够使用String类的构造方法创建字符串对象能够明确Stri ...

  8. Java | 静态嵌套类(Static Nested Class)

    前言 本文内容主要来自 Java 官方教程中的<嵌套类>章节. 本文提供的是 JDK 14 的示例代码. 定义 静态嵌套类(Static Nested Class),是 Java 中对类的 ...

  9. Java(133-151)【String类、static、Arrays类、Math类】

    1.字符串概述和特点 string在lang包里面,因此可以直接使用 字符串的内容不可变 2.字符串的构造方法和直接创建 三种构造方法 package cn.itcast.day08.demo01; ...

  10. 类的static成员并用其实现一个单例模式

    对于特定类型的全体对象而言,有时候可能需要访问一个全局的变量.比如说统计某种类型对象已创建的数量.如果我们用全局变量会破坏数据的封装,一般的用户代码都可以修改这个全局变量,这时我们可以用类的静态成员来 ...

随机推荐

  1. Flask - 性能分析(Profiling,profiler,profile)

    1. 疑问 @app.cli.command() @click.option('--length', default=25, help='Number of functions to include ...

  2. 08 DTFT变换的性质

    DTFT变换的性质 线性性质 设 \[ x[n]\xrightarrow{DTFT}X(e^{jw})\quad y[n]\xrightarrow{DTFT}Y(e^{jw})​ \] 则 \[ \ ...

  3. Apache Shiro安全(权限框架)学习笔记一

    1. 授权需要继承 AuthorizingRealm 类, 并实现其 doGetAuthorizationInfo 方法 2. AuthorizingRealm 类继承自 Authenticating ...

  4. 牛顿迭代法--求任意数的开n次方

    牛顿迭代法是求开n次方近似解的一种方法,本文参考. 引言 假如\(x^n = m\),我们需要求x的近似值. 我们设\(f(x) = x^n - m\), 那么也就是求该函数f(x)=0时与x轴的交点 ...

  5. 访问HDFS文件系统

    一.命令行接口 默认操作的是hdfs hadoop dfsadmin -safemode leave/enter---离开或进入安全模式 hadoop fs -copyFromLocal    loc ...

  6. idea 编译maven

    参考:https://blog.csdn.net/yye894817571/article/details/71681891

  7. 【原】openresty学习

    参考文档: 1.openresty最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ 2.openResty ...

  8. 夯实Java基础(二十三)——Java8新特征之Stream API

    1.Stream简介 Java8中除了引入了好用的Lambda表达式.Date API之外,另外还有一大亮点就是Stream API了,也是最值得所有Java开发人员学习的一个知识点,因为它的功能非常 ...

  9. KEIL的一些函数

    一 Predefined Functions:http://www.keil.com/support/man/docs/uv4cl/uv4cl_df_predeffunct.htm 主要有三角/反三角 ...

  10. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)B(SET)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[2007];set<int& ...