php 指针,this是非静态的么?

用户投稿 180 0

关于“php_this指针”的问题,小编就整理了【3】个相关介绍“php_this指针”的解答:

this是非静态的么?

this是非静态的。

静态与非静态成员函数之间有一个主要的区别。那就是静态成员函数没有this指针。只有非静态成员才可以使用this关键字,因为静态成员没有this指针 。

静态成员属于类的,而不属于某个特定的对象。一个对象有属于自己的this指针,但是属于类的静态成员是没有this指针的。

c++静态成员函数里,为何不能直接使用this指针?

静态成员函数并不是针对某个类的实例对象,而是属于整个类的,为所有的对象实例所共有。他在作用域的范围内是全局的,独立于类的对象之外的。他只对类内部的静态成员变量做操作。当实例化一个类的对象时候,里面不存在静态成员的。this指针是相当于一个类的实例的指针,this是用来操作对象实例的内容的,既然静态成员函数和变量都是独立于类的实例对象之外的,他就不能用this指针。也不能操作非静态成员。再有你要想想设计静态成员的用意在哪里,就会更加明了了

c++类的本质?

C++的本质是是一门混合型面向对象语言,在过程式语言中加入了类与对象,继承等成分。它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

而谈到面向对象语言,不可避免的要讨论到封装这个概念,从字面意思来看,封装是将散乱的东西打包为一个整体,而对于C++,封装则是将事物抽象出来的数据,代码结合,作为一个整体加以包装,其目的是“数据保护——限定访问”,即通过切断内部与外界的私下联系,同一归由实体的“界面”与外界联系,增强安全性以及简便性,也使得使用者不必了解具体的细节只需通过接口来完成相关操作。封装的实现一是依靠作用域二是依靠访问权限。

C++的类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。这有点像C语言中的结构,唯一不同的就是结构没有定义所说的“数据相关的操作”,“数据相关的操作”就是我们平常经常看到的“方法”,因此,类具有更高的抽象性,类中的数据具有隐藏性,类还具有封装性。C++通过类来定义自己的抽象数据类型。

软件的本质就是地址,偏移量等,C++类的本质是代码结构化。

1、从汇编上看,C与C++本质是一样的,只是C++由编译器添加了一些新的东西;

2、结构体和类作为参数传递时,一样是存于栈区,由esp-0xAA来拉高栈顶,然后一个个成员赋值到栈顶,如果成员多了,赋值多了,效率就会很低,所以,参数和返回值 最好是使用指针进行传参;

如果是基本类型数据,使用的是Push... ;

3、体会封装:封装就是将函数定义在结构体中,成员函数能直接使用成员函数,默认this指针存于ECX:this指针表示本对象的首地址,this指针不支持任何操作,只能用来访问数据和成员函数的参数;this指针不占当前结构体的宽度;

4、类:带函数的结构体被成为类,里面的成员函数是不占用空间的,有虚函数就加4字节虚表指针

到此,以上就是小编对于“php_this指针”的问题就介绍到这了,希望介绍关于“php_this指针”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!