34)static 静态成员和静态成员函数

1) static修饰的方法,只能在这个文件中使用,比如你是多文件编程,别的文件即使引入了我的 .h文件  但那时我的static方法也是不能用

2)C++的static的成员变量   比如  static int a;这个a变量属于包含他的类  而不属于类实例化出的对象。

  只要你在类内定义了一个静态变量,  那么就立刻 在类外给他初始化,不然,就忘了

3)比如 在类内定义了   static  int  a;  在类外,我初始化    int   类名::a=10;

4)当你的编译器进行编译的时候,那个静态变量的初始化就会自动分配空间了,不管你的类是不是实例化了,总之,这静态变量  给申请内存了。

5)返回或者给静态成员  赋值 或者改值   要是  static的 setter  和 getter  函数

6)由于静态变量属于类的  不属于对象,所以  他不会在某一个类的栈区或  堆区

7)

    

8)

    

原文地址:https://www.cnblogs.com/xiaoyoucai/p/8185078.html

时间: 2024-10-12 23:46:32

34)static 静态成员和静态成员函数的相关文章

static作用,静态成员变量和静态成员函数

static关键字有俩作用:(1).控制存储分配:(2).控制一个名字的可见性和连接. 随着C++名字空间的引入,我们有了更好的,更灵活的方法来控制一个大项目的名字增长. 在类的内部使用static是在全程序中控制名字的另一种方法.这些名字不会与全局名冲突,并且可见性和访问也限制在程序内部,使得在维护代码时有更多的控制. 数据成员可以分静态变量.非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静

类的静态成员变量及函数(二十)

我们正常情况下能通过对象名来访问 public 成员变量,每个对象的成员变量都是专属的,成员变量不能在对象之间共享的.我们现在学了这么长时间的 C++,现在又有了一个新的需求:a> 同级在程序运行期间某个类的对象数目:b> 保证程序的安全性(不能使用全局变量):c> 随时可以获取当前对象的数目. 我们首先想到的是定义一个私有成员变量,然后在构造函数中进行 ++ 操作,在析构函数中进行 -- 操作.我们试着写下程序 #include <stdio.h> class Test {

【学习笔记】【C语言】static和extern对函数的作用

如果一个程序中有多个源文件(.c),编译成功会生成对应的多个目标文件(.obj),这些目标文件还不能单独运行,因为这些目标文件之间可能会有关联,比如a.obj可能会调用c.obj中定义的一个函数.将这些相关联的目标文件链接在一起后才能生成可执行文件. 外部函数:如果在当前文件中定义的函数允许其他文件访问.调用,就称为外部函数.C语言规定,不允许有同名的外部函数.内部函数:如果在当前文件中定义的函数不允许其他文件访问.调用,只能在内部使用,就称为内部函数.C语言规定不同的源文件可以有同名的内部函数

static作用(修饰函数、局部变量、全局变量)转自http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html

static作用(修饰函数.局部变量.全局变量) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 char a = 'A'; // global variablevoid msg() {    printf("Hello\n

C++ static 静态变量&amp;静态成员函数

静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的.你在一个对象里给它赋值,其他对象里的该成员也会发生变化.为了避免混乱,所以不可在类体内进行赋值. 静态成员的值对所有的对象是一样的.静态成员可以被初始化,但只能在类体外进行初始化. 一般形式: 数据类型类名::静态数据成员名=初值 注意:不能用参数初始化表对静态成员初始化.一般系统缺省初始为0. 关于静态成员函数,可以总结为以下几点:出现在类体外的函数定义不能指定关键字static:静态成员之间可以相互访问,包括静态成员函数访问静态

析构函数 this 静态成员变量 静态成员函数

1. 析构函数 1.    析构函数没有参数,不能被重载,因此一个类只能有一个析构函数.如果用户没有定义,那么编译器会自动生成. 2.  static 局部对象在函数调用结束时并不销毁,因此也不调用析构函数, 只有在程序结束时(如 main 函数结束或调用 exit 函数)才调用 static 局部对象的析构函数. 3) 如果定义了一个全局对象,也只有在程序结束时才会调用该全局对象的析构函数. #include <iostream> #include <cstdlib> using

C++ 类的静态成员及静态成员函数

对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员和静态方法. 只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静态成员变量在对象创建之前就已经被分配了内存空间) 静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放).静态成员变量是在程序编译时分配空间,而在程序结束时释放空间. 静态成员的定义和声明要加个关键static.静态成员可

static作用(修饰函数、局部变量、全局变量)

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面是a.c的内容 char a = 'A'; // global variablevoid msg() {    printf("Hello\n"); } 下面是main.c的内容 i

c++学习(三)------static数据与成员函数

疑惑: static类型成员是类的全局变量,所有类的实例都享有这个变量,或者说这个变量不属于任何一个类的实例. static类型变量可以为private,或public或其他(static数据可以被继承吗?) <<静态数据变量的初始化 静态数据变量的显示初始化: 在头文件类定义中申明,在非inline函数所在文件初始化 <<const 类型的静态变量可以用于初始化数组 <<数组不能在类体内初始化,任何试图这样做的操作都将导致错误 <<类的成员函数可以直接访问