精华内容
下载资源
问答
  • 类静态成员函数定义

    千次阅读 2017-11-16 11:37:15
    类静态成员函数定义
    #include <iostream>
    using namespace std;
    /*
    1.
    为了管理静态成员,c++提供了静态函数,以对外提供接口。
    并静态函数只能访问静态成员。
    */

    class Student{
    public:
    Student(int n,int a,float s):num(n),age(a),score(s){}
    void total(){
    count++;
    sum += score;
    }
    //2.static 函数声明 
    static float average();
    private:
    int num;
    int age;
    float score;
    static float sum;
    static int count;
    };
     float Student::sum = 0;
     int Student::count = 0;
     //3.类名::函数调用
    float Student::average(){
      return sum/count;
    }
    int main(){
    Student stu[3]= {
    Student(1001,14,70),
    Student(1002,15,34),
    Student(1003,16,90)
       };
       //3.类对象.函数调用
    for(int i=0; i<3; i++){
     stu[i].total();
    }
     cout<<Student::average()<<endl;
     return 0;
    }
    //输出64.67 
    /*
    总结 
    1,静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,
        完成对静态数据成员的封装。
        2,静态成员函数只能访问静态数据成员。
    原因:非静态成员函数,在调用时 this指
              针时被当作参数传进。而静态成员函数属于类,而不属于对象,没有 this 指针。
    */

    展开全文
  • QT 类静态函数作为回调函数

    万次阅读 2020-05-26 08:41:05
    (二) 今天使用类的静态函数作为回调函数,具体方式如下, (1) 在头文件中定义类 class CardDataDispose : public QObject { Q_OBJECT public: static void callback(int device, int msg, i...

    (一) C++回调函数、静态函数、成员函数踩过的坑。
    明确一点即回调函数需要是静态函数。原因:
    普通的C++成员函数都隐含了一个this指针作为参数,这样使得回调函数的参数和成员函数参数个数不匹配。

    以前在使用回调函数的数据都是定义一个全局变量,把回调函数的返回结果给这个全局变量,然后在定时去刷新这个全局变量,这样虽然可以实现功能,但是方法不是很好 。

    (二) 今天使用类的静态函数作为回调函数,具体方式如下,
    (1) 在头文件中定义类
        class CardDataDispose : public QObject 
        {
            Q_OBJECT
        public:

            static void callback(int device, int msg, int param1, void *param2);//回调函数
            void data(QString cardID, QString cardAnswer);
        };
    (2) 在引用回调类的源文件中设置回调函数。
        TB_SetCallbackAddr(CardDataDispose::callback);
    (3) CardDataDispose回调函数的原型
        void CardDataDispose::callback(int device, int msg, int param1, void *param2)
        {
            CardDataDispose *a;
            a->data("1" , "2");

        }

        void CardDataDispose::data(QString cardID, QString cardAnswer)
        {
            引用回调函数的类
            UBBoardController *b;
            b->receiveCardData(cardID, cardAnswer);
        }
        
    (三) 通过以上把回调函数封装成一个类,在收到数据后直接调用receiveCardData()函数就可以传输数据,不需要开启定时器刷新了。

    展开全文
  • --------------------------------------------...注:静态函数与非静态函数定义上并没有任何区别 只是在声明的时候 静态函数前面有关键字static  而非静态函数是没有这个关键字的。

    ----------------------------------------------------------------

    //头文件

    class A()

    {

    public:

    void test1();

           static void test2();

    };

    ----------------------------------------------------------------

    //cpp文件

    A::test1()

    {

    }


    A::test2()

    {

    }

    ----------------------------------------------------------------

    注:类的静态函数与非静态函数在定义上并没有任何区别

    只是在声明的时候 静态函数前面有关键字static 

    而非静态函数是没有这个关键字的。




    展开全文
  • 一个的静态成员,是所有对象共享的,分配空间也是在进程执行时,一开始就分配了,以后固定而不会再分配空间的.的静态成员变量和外全局变量的区别是,...静态函数的成员变量一样,也是 在进程执行时,一开始就分

    一个类的静态成员,是所有对象共享的,分配空间也是在进程执行时,一开始就分配了,以后固定而不会再分配空间的.

    类的静态成员变量和类外全局变量的区别是,可以设定访问标志,只允许类的对象访问.如果类里定义public的静态变量,那么和类外的全局变量就没什么区别.

    而一个类的静态成员函数里,定义的变量是怎么样的呢?是不是也是所有对象共享呢?
    类的静态函数和类的成员变量一样,也是 在进程执行时,一开始就分配了控件存放这段代码,然后提供一个函数的地址入口,供所有对象或其它什么代码调用,静态函数是不允许调用类的普通变量,只能访问类的静态变量.因为它没有获得对象的this指针.静态函数的好处就是可以直接用类名加点来调用,不用专门去分配空间产生一个实例对象,才能调用.

    而每次调用静态函数时,进程同样要将其压入栈内,并在栈内为静态函数里定义的变量分配一次空间,每调用静态函数一次,都要这样分配静态函数的局部变量.

    因此静态函数里定义的变量都是独立的,

    那么如果静态函数里又定义了一个静态变量呢?事实告诉我们,静态函数里是不允许再定义静态变量的.因为这样做毫无意义,既然你想让所有的对象和函数共享该变量,就把它定义为类的静态变量就行了.

    展开全文
  • C# 静态静态函数

    千次阅读 2016-07-30 15:53:47
    C# 翻译msdn文档 静态静态函数
  • 静态函数

    千次阅读 2019-05-14 16:29:20
    不会被访问或者修改任何对象数据成员,可声明为静态函数。 普通的静态函数只能在文件所在的编译单位内使用。静态函数没有this指针,不能被其他文件所用,其他文件中 可以定义相同名字的函数。 的静态成员函数...
  • 程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。  静态成员(变量和方法)属于... 在一个静态成员中去访问其非静态成员之所以会出错是因为在的非静态成员不存在的时候静态成员就
  • 而调用中的静态函数,无需创建对象就可以调用了,因为当初始化的时候,就已经加载了静态函数,所以静态函数要比对象加载的早,对象只有被创建的时候才会在堆内存中创建空间。  另外,静态函数中不能使用非静态...
  • 3)要说二者相同点,都是c++名字控制的手段:全局静态函数被局限在一个编译单元,通俗的将就是在一个cpp文件中定义的全局静态函数在另一个cpp文件中不能被调用。例程如下; // main.cpp #include  extern ...
  • 1、定义静态变量 2、静态函数 3、静态代码块
  • C++ (静态成员和静态函数)

    万次阅读 2018-07-21 15:01:46
    静态成员函数 class A { public: static int x; public: static void Func(){} } int A::x=10; 静态成员变量 a. 关键字static用于说明一个的成员变量时,该成员为静态成员。静态成员提供了一个同类对象...
  • 的静态成员变量,以及静态函数。 静态成员变量: 1.静态成员共享机制 2.静态成员局部属于,它不是对象的成员,位于静态区。 3.静态成员变量需要在外部进行初始化。 静态函数: 1.静态成员函数都在代码区,...
  • 静态函数, 函数, 成员函数的区别 本文地址: http://blog.csdn.net/caroline_wendy/article/details/23383995
  • python 函数,实例函数,静态函数

    千次阅读 2018-05-16 00:25:48
    # 在类定义定义变量 cls_variable = "class varibale" def __init__(self): # 在构造函数中创建变量 self.__instance_variable = "instance variable" def instance_...
  • static的三种用法,定义静态变量,静态函数,静态代码块!
  • 内联函数、构造函数、静态成员函数不可以定义为虚函数 内联函数是编译时展开函数体,所以...如果构造函数定义为虚函数,则需要通过查找虚函数表来进行调用。但是构造函数是虚函数的情况下是找不到的,因为构造函数...
  • 当将的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少的对象无关。静态...
  • 静态函数如何多态

    千次阅读 2015-04-24 14:53:49
    静态函数如何多态
  • 单件是对类静态函数的一种改进,首先改变了全局变量对系统的污染,其次它可以有子类,可以定义虚函数,可以有子类,而的静态方法是不能定义为虚函数的,因此不具有多态性。单件模式可以扩展为多件,即允许有受控的...
  • 滚雪球学 Python 第二轮 已完成的文章清单 十五、函数、成员函数、静态函数、抽象函数、方法伪装属性 15.1 函数 @classmethod 15.2 静态函数 @staticmethod 15.3 函数与静态函数在继承中的表现 15.4 抽象...
  • 在函数或者变量前面加上static修饰符号,以便把函数或者变量在内或者文件范围内共享,那么我们把这种函数和变量叫静态函数和静态变量。我们把函数和变量声明为静态的有什么优点那,从静态变量的角度看,更容易理解...
  • C++提供static这个关键词对静态成员进行声明,静态成员函数的实例化无关,对于同一来说,静态成员函数是共享的。而普通成员函数需要实例化才能调用,对于每一个实例来说,普通成员函数是自己独有的。 #...
  • 图片简略,图片的说明解释了图片大意 [定义的外部]...如图,为什么定义了一个静态内部,在主函数中访问此内部静态函数时只能通过建立对象调用而不是类名调用,谁能帮忙解答疑惑?
  • C#静态函数

    千次阅读 2019-07-09 22:48:51
    //一.新建Person ...面对对象静态函数和非静态函数的区别 { //新建个Person public class Person { private static string _name; //静态字段 public static string Name //属性,对字体的限定...
  • python 中的static-method (静态函数), classmethod(函数 ), 成员函数 简介 类似Java、CPP中的,可以定义static method、class ...静态函数(@staticmethod): 定义静态方法,可以通过或者实例调用。 ...
  • 中的函数都定义静态函数,这样相当于在编译时就分配了空间,这样不需要实体对象也可以调用泪中的函数了。C++静态数据成员与静态成员函数 我们如何才能在范围内共享数据呢? 这个问题便是本章的重点: ...
  • 函数定义 语法: class 类名:  体  体分两部分: 变量(静态变量)部分, 方法(函数)部分 import math class Circle: # def __init__(self, radius): self.radius = radius # 半径 ...
  • 【 声明:版权所有,欢迎转载,请勿用于商业... 看过设计模式的朋友都知道,我们在设计单件模式的时候离不开静态函数。和的成员变量不同,的静态变量属于全部对象数据;同样和的成员函数不同,的静态函
  • C++类静态成员与类静态成员函数

    千次阅读 2012-05-16 19:15:08
    当将的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少对象无关。静态...
  • 比如内绑定自身成员函数作为回调函数,这种情况在开启多线程时很常见,如果不想将回调定义为全局那只能定义类静态了,为了避免过度破坏封装中应当尽量不要让类静态成原函数调用成员。这种情况下可以用一种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 746,327
精华内容 298,530
关键字:

类静态函数定义