`
shootyou
  • 浏览: 84492 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

static函数使用

 
阅读更多

首先请看一个错误的例子:

 

如果要访问一个对象的方法或者变量(非static),那必须先初始化该对象,如修改上面的程序:



之后就可以访问P38的变量和方法了。


对static的变量、方法而言,不需要初始化/创建该对象,因为这些static的变量、方法是独立于这些类实例的。如果在static方法中访问了非static的变量/方法,而实际上要访问这些非static的变量的条件是该类必须已经实例化了,而这完全是矛盾的。


1.无需实例化某个类就可以访问该类的static变量、方法。
2.必须实例化某个类后才能访问该类的非static变量、方法。


从上面2个条件可以看出,从逻辑上,也不允许从static方法中访问非static方法,变量。除非在该static方法中实例化要访问的类之后,才能访问该类的方法/变量。

关于static函数在VM内调用的过程这里做一个简单的讨论。

运行TestMain 的结果是:

hh
被加载……
16
16

 

 

第一次调用MyStatic的时候,VM便为MyStatic生成了一个实例,之后再调用MyStatic.num都是使用了同一个实例。

分享到:
评论

相关推荐

    static变量和static函数的用法摘抄

    **二、static函数** 1. **静态内部函数(静态成员函数)**: 在C++中,函数也可以被声明为`static`,这通常发生在类的上下文中。静态成员函数没有`this`指针,不能访问类的非静态成员变量,但可以直接访问静态成员...

    static 的使用场合

    下面将详细说明`static`关键字的使用方法和适用场合。 1. **静态变量(Static Variables)** - `static`关键字用于声明类变量,这些变量属于类本身而不是类的实例。因此,无论创建了多少个对象,静态变量只有一份...

    子函数中static的简单使用

    子函数 static 初学者可以参考 子函数 static 初学者可以参考

    static 用法

    无法使用file1.cpp文件中static函数 ``` #### 三、静态数据成员/成员函数(C++特有) 在C++中,`static`关键字被赋予了第三种含义:表示属于一个类而不是属于此类的任何特定对象的变量和函数。 **主要特性:** ...

    C语言中static变量使用方法

    #### static函数:内部函数与外部函数的区别 在C语言中,函数同样可以被标记为静态,这将改变其可见性和可调用性。内部函数(静态函数)只能被定义它的源文件内的其他函数调用,而外部函数则可以在整个程序中被调用...

    C语言静态变量和静态函数

    C_语言静态变量和静态函数,可以让您对C语言静态变量和静态函数有更清晰的认识

    Qt静态函数发送信号

    需要注意的是,由于我们在静态函数中发送信号,所以必须使用`QObject::connect`的C++11语法,这样可以连接到静态信号和静态槽。 然而,由于静态函数无法直接访问非静态成员,如果想要在静态信号发射时传递数据,...

    C++中Static的使用方法

    - 当需要在函数内部保留某些状态,并希望这些状态能够在函数多次调用之间持续存在时,就需要使用`static`。 - 如果直接定义全局变量,虽然可以达到目的,但是会导致变量的作用范围过于广泛,不利于代码的维护和...

    c++ qt 静态函数中发信号

    本篇将详细介绍如何在C++ Qt的静态函数中发送信号以及回调函数的基本使用。 首先,理解Qt的信号与槽机制。信号是对象状态改变时的通知,而槽是响应这些通知的函数。当一个信号被发射,与其连接的槽函数会被调用。在...

    函数指针_extern_typedef_const_static的基本用法

    在C/C++编程语言中,`函数指针`、`extern`、`typedef`、`const`和`static`是五个非常重要的关键字,它们各自有着独特的功能和用途。本篇文章将详细阐述这些概念及其基本用法。 首先,我们来看`函数指针`。函数指针...

    JAVA函数使用手册

    这份“JAVA函数使用手册”可能是针对Java编程中的函数使用方法、设计原则以及常见问题的详细指南。以下是关于Java函数的一些关键知识点: 1. **函数定义与调用**:在Java中,函数通过`public void functionName参数...

    API大全_API函数大全_API函数使用说明.doc

    在本文中,我们将深入探讨如何使用C#语言调用Windows API函数,以`GetShortPathName`函数为例。Windows API是一组预定义的函数,提供操作系统的核心功能,包括文件系统操作、进程管理、网络通信等。C#作为.NET框架的...

    const,extern,static,volatile的使用

    ### const、extern、static、volatile 的使用详解 #### 一、const 的使用 **1. 为什么使用 const** `const` 关键字在 C 和 C++ 编程语言中非常常见,它用来声明一个常量或者指定某个变量的某个方面为不可变。使用...

    C++将类的成员函数作为回调函数

    使用类的成员函数作为回调函数是C++编程中一个实用但又具有挑战性的任务。上述两种解决方案分别针对单例和多实例场景提供了不同的处理方法。选择哪种方法取决于具体的应用场景和需求。在实际开发过程中,还需要考虑...

    java函数使用查询包

    在“java函数使用查询包”中,我们可能找到了两个与Java函数使用相关的资源:`javascript.chm`和`JavaScript5.5 参数速查.rar`。虽然文件名中包含了"javascript",但考虑到标签为"java",我们将重点放在Java函数的...

    Rand函数详细讲解

    Rand函数是计算机编程中广泛使用的函数,用于生成一系列伪随机数。在许多编程语言中,包括C/C++,都有rand()函数的实现。该函数能够生成一个在指定范围内的随机整数,从而在软件开发中实现各种随机化功能。 首先,...

    java static块和构造函数的实例详解

    Java static 块和构造函数的实例详解 Java static 块和构造函数是 Java 编程语言中两个非常重要的概念,它们在 Java 程序的执行过程中扮演着重要的角色。今天,我们将深入探讨 Java static 块和构造函数的实例详解...

    C++中static关键字总结

    在C++中,使用static关键字可以修饰变量和函数,具有不同的作用。下面对这些知识点进行详细解释。 首先,静态变量(static variable)的主要存在意义在于它们能够在函数调用结束后仍然保持其值。普通变量在函数内部...

    const成员函数、初始化列表、static成员1

    C++ 编程语言 - const 成员函数、初始化列表、static 成员变量 C++ 编程语言中,const 成员函数、初始化列表、static 成员变量是三个重要的概念,它们在编程中发挥着重要的作用。 const 成员函数 在 C++ 中,...

    c语言中static使用方法

    ### C语言中Static使用方法详解 #### 一、C程序存储空间布局 C语言程序的存储空间主要由以下几个部分组成: 1. **正文段**:这部分存储的是CPU执行的机器指令,一个程序通常只有一个副本,并且是只读的,以防止...

Global site tag (gtag.js) - Google Analytics