如果没有静态成员函数会发生什么情况

发布于 汽车 2024-05-17
7个回答
  1. 匿名用户2024-01-28

    举个例子,例如,如果你想实现oo,你不能使用全局函数,你还需要一个条目处理程序(例如线程),你需要在构造一个对象之前使用? 该怎么办???

    使用静态成员函数,因为它不属于任何对象,只属于类,并且可以在对象初始化之前使用。

    它通常用于回调函数。

    如果你不明白,嗨,我。

  2. 匿名用户2024-01-27

    并且不属于任何对象

    这里详细讲解一下部分内容,其中一小部分和楼上有点一样,但是我说的重点,和它不一样,有些说法是修改的。

    首先,我将把 landlord 的 “static members” 和 “static methods” 放在这里,分别对应下面的 “static data members” 和 “static member functions”。 并使它们都是静态成员。 (它们实际上是同一概念的不同术语。 )

    静态成员属于一个类,并由该类的所有对象共享“——没错。

    不管你构建了多少个类的对象,内存中只有一个静态成员“——我想说的是,无论你在该类中构建了多少个对象,所有成员函数在内存中都只有一个。

    为什么静态成员属于类?

    因为,让我们假设类 a };并将对象定义为 abc;

    引用类成员的一般方法是通过对象引用它:;

    但是,您可以通过类 a::i 引用 i,通过 a::d isplay() 引用 display()。这里有一个特别的提示!!

    普通成员并非如此,尽管静态成员和普通成员的内存中只有一个副本。 但从这个角度来看,静态成员属于类。

    对于静态成员函数,我们可能无法分辨出区别,但对于静态数据成员,我们可以很容易地理解它。

    如果未将其定义为静态数据成员,则每个对象都具有 i 的副本 (copy)。 但是,当定义为静态数据成员时,所有对象共享 i 的副本,这意味着 i 是内存中的副本。

    那么,如果你在不同的对象中引用 i,如果你改变 i,其他对象中 i 的值也会改变,所有对象的值都是一样的。

    引用静态数据成员时,可以遍历一个类而不是一个对象,并且内存中只有一个静态数据成员,并且可以由一个类引用。 很明显,静态数据成员属于类。

    这是一种在不同对象之间共享数据的方法。

    静态成员函数,类似于静态数据成员。 毋庸置疑,需要注意的是,它在内存中始终只有一个副本(普通成员函数也是如此)。

    这里就不多说静态成员的生命周期了。

  3. 匿名用户2024-01-26

    答:bb。此指针是指向系统隐含的当前对象的指针。

    由于静态函数是同一类别中所有对象共享的函数,并且内存裂解天平中只存在一个副本,并且不属于某个任意对象,因此静态函数没有这个指针。

  4. 匿名用户2024-01-25

    在C++编程思路中提到,在引入静态成员函数之前,如果需要调整类中C++中一个函数,但与该类的实例无关,则需要((t*)null)->func(),所以简单引入静态内存函数。

    我们定义了一个包含私有静态成员变量 m ninta 的 CstaticMember 类,如果想在外部访问或更改 m ninta 的值,那么我们必须根据 C++ 语法的要求提供一个成员函数来访问它。

    赋值运算符和赋值表达式。

    C++ 提供了几个赋值运算符,其中最简单的是“=”,带有赋值运算符的表达式称为赋值表达式。 例如,m=m+6 是一个赋值表达式。

    赋值表达式的用途是将等号右侧的表达式的值赋给等号左侧的对象。 赋值表达式的类型是等号左侧对象的类型,表达式的结果是赋值后等号组左侧对象的值,操作的组合是从右到左。

  5. 匿名用户2024-01-24

    原因如下;

    与静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。 如果要在类外部调用公共静态成员函数,请使用类名和域运算符”。

    例如,box volume( ) 实际上也允许通过对象名称调用静态成员函数,例如 );但这并不意味着这个函数属于对象 a,而只是它类型为 a。 静态成员函数的目的是能够处理静态数据成员。 可以说,静态成员函数和非静态成员函数的根本区别在于:

    非静态成员函数有这个指针,静态成员函数不属于一个对象,它与任何对象都没有关系,静态成员函数没有这个指针。

    这确定静态成员函数无法访问此类中的非静态成员。 在 C++ 程序中,静态成员函数主要用于访问静态数据成员,而不是非静态成员。 假设静态成员函数中有以下语句:

    cout<”。比如cout<<

  6. 匿名用户2024-01-23

    静态成员函数的定义与常规成员函数的定义相同,只是前面有一个 static 关键字,其定义格式如下。

    类名。

    static

    类型。 函数(参数)的名称。

    函数体说明: 1)类的静态成员函数只能访问类的静态差分总数据成员,而不能访问类中的普通函数成员。

    因为只有当类的对象存在时,普通数据成员才有意义。

    2)静态成员函数与类相关联,而不是与类的对象相关联,因此类中的公共静态成员是在类外部调用的。

    函数,必须保留“类名:”,而不是通过对象名称调用公共静态成员函数。 课外。

    部门不能调用类中的私有静态成员函数。

  7. 匿名用户2024-01-22

    静态成员函数不与任何对象关联,因此它不能对非静态成员进行默认访问。

    它们之间的根本区别在于,静态成员函数没有指向 this 的指针,而非静态成员函数具有指向当前对象 this 的指针。

    例如:class sc

    void f(sc &s)

    函数 nsfn() 可以被认为是被声明为 void sc::nsfn(sc* this, int a)。 对 nsfn() 的调用像注释一样编译,将 s 的地址作为传递的第一个参数。

    你实际上并不编写调用,它是通过编译完成的。 )

    在函数内部,sc::nsfn() 对非静态成员的访问将自动将此参数作为指向当前对象的指针。 当 sc::

    调用 sfn() 时,不会传递任何对象的地址。 因此,在访问非静态成员时,此指针没有错误。 这就是为什么静态成员函数与任何当前对象无关的原因。

相关回答
14个回答2024-05-17

人民币贬值对经济、生活和工作都有影响

1、进口减少,进口企业利润下降:因为在进口货物时,必须先用人民币在银行兑换美元等外币,然后再从国外购买货物。 >>>More

10个回答2024-05-17

晕倒了,你最好去睡觉。

18个回答2024-05-17

晚期肺癌的症状:

肺癌处于晚期,如果癌细胞侵入纵隔,可能会出现以下症状,但不幸的是,它们的出现使恢复相对较差。 >>>More

16个回答2024-05-17

启动丢失,设置从硬盘启动,并且无法重新安装系统。 >>>More

18个回答2024-05-17

将出现无法识别信号的情况,导致**功能丢失。 >>>More