精华内容
下载资源
问答
  • 数据成员前加static就是静态数据成员, 二者区别: 1,普通数据成员只有在对象创建后才会分配内存空间,而静态数据成员对象的内存空间一直存在 2,类的静态成员应在代码中被显示的初始化,并一般在类外进行。 3...

    数据成员前加static就是静态数据成员,

    二者区别:

    1,普通数据成员只有在对象创建后才会分配内存空间,而静态数据成员对象的内存空间一直存在

    2,类的静态成员应在代码中被显示的初始化,并一般在类外进行。

    3,外部访问类的静态成员能直接通过类名来访问。虽然静态成员不属于类的某个对象但仍然可以使用类的对象,引用或指针来访问静态成员。

    4,类的静态成员函数无法直接访问普通数据成员(可通过对象名间接访问),而类的任何成员函数都可直接访问静态数据成员

    5,

    展开全文
  • 类的静态成员

    2017-09-26 12:43:40
    静态成员的声明即在普通成员的声明加static,其必须在类外定义,在定义时不加static;当一个成员被声明为静态成员后这个成员就不属于某个具体的实例,而是为所有的类对象所共享;类的静态成员和其

           类的静态成员是指声明为static的成员(包括成员函数和成员数据)。静态成员和类的普通成员一样,也有public、protected、private3种访问级别,也可以具有返回值,const修饰符等参数;静态成员的声明即在普通成员的声明前加static,其必须在类外定义,在定义时不加static;当一个成员被声明为静态成员后这个成员就不属于某个具体的实例,而是为所有的类对象所共享;类的静态成员和其他成员函数一样存放在独立于对象之外的代码段,静态成员函数和普通成员函数的区别是静态成员函数没有this指针,而静态成员函数里面定义的局部变量则和正常的函数一样,只有声明为static时才存放在静态区;静态成员的访问可用类名::静态成员或者对象.静态成员来访问。

           静态成员数据的声明、定义及访问:

    class A
    {
    public:
    	A(int _a):a(_a)
    	{
    		;
    	}
    private:
    	int a;
    	static int b;
    };
    int A::b = 0;

    上面代码中,静态数据成员b在类内声明为static,在类外定义,因为静态成员独立于类的对象,因此不能在构造函数中对其进行初始化,所以在类外定义是对其赋初值,这里b的访问权限是private的,因此只能在成员函数中访问,我们可以用如下方式进行访问:

    class A
    {
    public:
    	A(int _a):a(_a)
    	{
    		;
    	}
    	void B(int tmp)
    	{
    		A::b += 1;
    	}
    private:
    	int a;
    	static int b;
    };
    int A::b = 0;

    我们调用两次函数B,看看是否访问成功:

    int main()
    {
    	A a1(1);
    	a1.B(1);
    	a1.B(1);
    
    	return 0;
    }

    对齐进行调试,观察结果:

    显然,调用成功。除此之外,还可以用对象::静态成员的方式访问,因为静态成员不属于任何对象,因此同一个类的任何对象都可以进行访问,在此不多做累述。

            下面我们来看看静态成员函数和普通成员函数是否能够相互调用:

            我们首先来看一下静态成员函数是否可以访问普通成员函数,我们写下如下代码:

    class A
    {
    public:
    	void B(int tmp);
    	static void C(int);
    private:
    	int a;
    };
    void A::C(int)
    {
    	B(1);
    }

    我们看能不能通过编译:

    显然不行,我们再来看普通成员函数是否可以调用静态成员函数:

    class A
    {
    public:
    	void B(int tmp)
    	{
    		C(1);
    	}
    	static void C(int);
    private:
    	int a;
    };
    void A::C(int)
    {
    	;
    }

    我们来看看能否调用成功:

    可以看出能成功调用,显然,静态成员函数可以调用普通成员函数。

           通过上面的探讨,我们可以知道静态成员函数不能调用普通成员函数,而普通成员函数是可以调用静态成员函数的。关于类的静态成员的知识还有很多,希望我们可以在今后的学习中学到更多的知识。



    展开全文
  • C++类的静态成员

    2018-03-19 21:08:34
    (2)静态数据成员在使用,还必须文件作用域做定义性说明,以分配存储空间和初始化。静态数据成员定义性说明格式为: <数据类型><类名>::<静态数据成员名>=&lt...

    静态数据成员:

    (1)静态数据成员的值对每个对象都是一样的,若某个对象对静态数据成员做了修改,则其他对象的静态数据成员也同时被修改。

    (2)静态数据成员在使用前,还必须在文件作用域做定义性说明,以分配存储空间和初始化。

    静态数据成员定义性说明的格式为:        <数据类型><类名>::<静态数据成员名>=<值>

    (3)访问类的静态数据成员的方法为:      <类名>::<静态数据成员名>

    (4)由于静态数据成员是类的数据成员,因此,使用对象或指向对象的指针进行访问也是可以的,但是这时用的是对象的类型。格式分别为:

    对象名.静态数据成员名

    对象指针->静态数据成员名

    静态成员函数:

    定义格式:  static 返回值类型  成员函数名(参数表)

    函数的实现可以在类体内,也可以在类体外,与一般成员函数相同。

    在静态成员函数的实现中,可以直接访问该类的静态数据成员,但不能直接访问非静态数据成员,原因是类的静态成员不含this指针。如果要访问非晶态数据成员,必须通过对参数传递方式得到对象名,然后通过对象来访问。

    展开全文
  • 1.const数据成员:跟const常量一样,只是一个在类里,一个在类外而已,都必须初始化。...mutable是ANSI C++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。 3.普通对象:可以调用任意成

    1.const数据成员:跟const常量一样,只是一个在类里,一个在类外而已,都必须初始化。
    2.const成员函数:即普通成员函数后再加const。它可以读取数据成员的值,但不能修改它们。若要修改

    时,数据成员前必须加mutable。以指定其可被任意更改。mutable是ANSI C++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。
    3.普通对象:可以调用任意成员函数。
    4.const对象:仅能调用const成员函数。

    展开全文
  • 1.const数据成员:跟const常量一样,只是一个在类里(而且是在构造函数里),一个在类外而已,都必须初始化。...mutable是ansic++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。cons
  • 局部变量--声明在一个函数定义的体中的变量。函数中的局部变量必须在使用声明,并且不能再声明它们的函数外部...这样的变量称为数据成员,声明在类的定义之内,但是在所有类的成员函数的定义体之外。2010-01-08 #in
  • C/C++复习之 静态成员

    2019-04-17 21:59:06
    为了实现一个类的多个对象之间的数据共享,C++提出了静态成员的概念。静态成员包括静态数据成员和静态成员函数。 静态成员变量 想一个类的多个对象之间实现...静态成员变量属于类,不属于类的某个对象。 ...
  • C++中const成员函数和const对象

    千次阅读 2014-05-13 17:03:11
    1.const数据成员:跟const常量一样,只是一个在类里(而且是在构造函数里),一个在类外而已,都必须初始化。...mutable是ansi c++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。const成员
  • iOS-OC中的类与对象

    2016-05-28 15:07:53
    类的成员变量名需要加下划线_ 类中可以添加函数 类中能堆上定义变量,不能定义栈上(因为栈小堆大,类占空间较大),并且类不需要释放 类可以使用[类名+函数名]调用 分割文件,类的声明.h文件中,类中的函数是现在....
  • 1、java中,要产生对象必须先定义类,类是对象的设计图,对象是类的实例。类定义时使用class关键词,建立实例对象要使用new关键词。...参数名称与对象数据成员同名时,可以在数据成员前使用this关键字来区别。 3...
  • 为了在类之间进行数据共享时...1、普通函数声明为友元函数将一个普通函数,声明为某个类的友元函数后(在函数声明加上“friend”关键字),该函数就可以访问类中的任何成员。观察下面的代码:#include&lt;iostre...
  • OpenCV图像处理---Mat

    2019-06-13 08:54:28
    基础图像容器,代表是矩阵(Matrix)三个字母,它其实就是一个可以保存图片(一些数组矩阵)或者数组容器,opencv开发中我们经常需要使用它存储显示并传递一些数据,Mat有相关的成员变量和成员函数方便使用...
  • 常量数据成员的声明是数据成员声明加const   Test中,size就是常量数据成员 一旦对象生成,常量数据成员值不能变 常量数据成员的值只能构造函数中设定, 其他成员函数不能改 构造函数如何给常量数据...
  • 为了在类之间进行数据共享时,提高效率,C++引入了友元的概念。...将一个普通函数,声明为某个类的友元函数后(在函数声明加上“friend”关键字),该函数就可以访问类中的任何成员。观察下面的代码: ...
  • 20165219 2017-2018-2 ...参数名称与对象数据成员同名时,可以在数据成员前使用this区别。 java.util.Scanner中nextInt()、next()、nextLine()。 =是用指定参考名称参考某个对象,而==是用比较两个...
  • 然而以上所诉并不适用于“局部”变量(即:非某个类的字段)。因此在某个方法中定义int i,那么变量i可能得到的是任一值。不会被初始化为0。所以使用先付一个适当的值。如果忘记了,java会编译...
  • ---恢复内容开始--- 1、类 ...所有成员变量声明在类的顶端,用一个换行分开 用有意义的名字命名空间 使用某个控件的值时,尽量命名局部变量 3、变量与常量 值类型:整数int、浮点数float,布尔...
  • 数据结构实验

    2012-04-13 09:55:47
    1. 学会定义单链表结点类型,实现对单链表一些基本操作和具体函数定义,了解并掌握单链表的类定义以及成员函数定义与调用。 2. 掌握单链表基本操作及两个有序表归并、单链表逆置等操作实现。 二 、实验...
  • 然后,你需要将从最后的完全或增量备份的某个时刻到最后某个点的所有二进制日志复制到备份位置。这些二进制日志为增量备份;恢复时,按照下面的解释应用。下次进行完全备份时,还应使用FLUSH LOGS或mysqlhotcopy --...
  •  在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。  使用静态数据成员可以节省...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 166
精华内容 66
关键字:

在类的某个数据成员前