一、TString结构1、结构分析TString是存放字符串的结构体,代码如下:typedef union TString {
L_Umaxalign dummy; /* ensures maximum alignment for strings */
struct {
CommonHeader;
lu_byte reserved; /* 保留字段 */
unsi
转载
2024-03-15 07:53:04
80阅读
静态成员函数调用方式
A:: s_fun();//不需要额外传递一个参数,作为this 指针;因为静态函数,属于类,不属于具体对象。
非静态成员函数调用方式 。
非静态成员函数,属于对象,需要隐式传递 this 指针作为参数。A a;
A &ref=a;
A *ptr = &a;
int main(){
a.fun(); // 1)对象; 传递&a, 即a 的地址作
前言 在我开始这个系列的第一篇文章中,我就提到了Lua脚本用来实现宿主脚本的配置性和扩展性。上节说到的调用外部Lua脚本就对应了它的两大特性之一的配置性,那么另一大特性如何来体现呢?这就要说我们今天的话题了:Lua函数。uLua插件是用来解决unity3d热更新的方案,在我们需要对宿主程序做一些局部逻辑上的修改时,Lua函数就变得至关重要。那么如何在uLua
转载
2024-02-10 13:15:41
85阅读
静态的成员函数,同静态数据成员类似,它也是属于类,而不是属于某一个对象的。静态成员函数不能访问非静态的数据成员,它只能访问静态数据成员,也只能调用其它的静态成员函数。原因是:当前对象的地址(this)是被隐含地传递到被调用的函数的。但一个静态成员函数没有this指针,所以它无法访问非静态的成员函数。由于静态成员函数是属于类的,所以,静态成员函数的调用方法为: 类名::静态成员函数名();&nbs
文章目录一、table表1. 表的构造2. 表的操作(1) concat(连接)(2) insert(插入)(3) remove(移除)(4) sort(排序)(5) maxn(最大值)二、模块与包1. require2. 加载机制3. C包 一、table表table 是一种数据结构用来帮助我们创建不同的数据类型(数组、字典等)。table 使用关联型数组,可以用任意类型的值来作数组的索引,不
转载
2024-03-21 10:35:34
277阅读
1. Lua简介Lua是一个轻量化的脚本语言,体积小,速度快。Lua须嵌入在其他宿主语言(如:C、C++)中来执行,因此功能也很容易灵活扩充。Lua是个动态型别语言,这表示不需要对变量宣告类型,而每个值都有自己所代表的类型。Lua常见用于游戏开发与嵌入式开发,例如编写游戏AI、剧情脚本,把程序模块化。使用Lua编写程序中可模块化之部分的好处是,一旦模块内容有所变更,无需重编译主程序就可直接使用新版
转载
2024-04-05 10:12:43
63阅读
摘要目前主流 openersty的开发都采用了 lor 这个框架,本文根据本拐的一些经验,总结了一些实践经验Lua 的错误处理机制error在 Lua的标准库中,有一个函数,用于程序向外界抛出异常,即 error ,其官方文档如下:error (message [, level])Terminates the last protected function called and returns m
转载
2024-04-06 23:06:39
63阅读
私有成员变量的概念,在脑海中的现象是,以private关键字声明,是类的实现部分,不对外公开,不能在对象外部访问对象的私有成员变量.然而,在实现拷贝构造函数和赋值符函数时,在函数里利用对象直接访问了私有成员变量,因而,产生了困惑.下面以具体实例进行说明:疑惑:为什么第26行和第32行代码可以编译通过,而第39行和第40行代码会产生编译错误?1 class CTest {
2 public:
3
转载
2024-05-02 15:28:52
57阅读
通常情况下,我们不需要知道Lua的table是如何实现的,但是为了对lua性能进行优化,去了解Lua table的实现细节是非常关键的。01—table是如何实现的?为了了解table的实现,我们可以查看Lua的C源码,如下: 图1-1 lua表的构成Lua中的table是由两部分组成,数组部分和哈希表部分。数组部分储存着索引为整型的数据,哈希表存储着以其它类型为索引的键值对。哈希表使用
转载
2024-05-06 06:32:44
61阅读
...
原创
2022-01-10 11:34:35
297阅读
有时我们会把C++类导入到lua,这样方便在lua里面对C++类进行操作,这在游戏编程里面经常使用,本文只是简单介绍一种实现。 1. lua里面面向对象的实现 在lua里面,我们可以这样操作表,如下: Acc...
原创
2022-01-10 11:30:58
486阅读
扩展Lua的一项基本含义就是,应用程序将新的C函数注册到Lua中。 Lua能调用C函数,但并不意味着Lua可以调用任意C函数。在上一章中,当C语言调用Lua函数时,它必须 遵循一个简单的协议,以此来向Lua传递参数,并从Lua获取结果。同样,对于一个能被Lua调用的C函数,它也必须遵循一个获取参数和返回结果的协议。此外,还必须注册C函数,以便用某种适当的方式将函数地址告诉Lua。 当Lua调用C函
转载
2024-03-16 13:40:31
111阅读
1.string.match 模式匹配string.match(str, pattern, pos)第一个参数指定目标字符串,每二个参数指定查找模式串。第三个参数可选指定开始位置 这个函数与string.find很象。但不会返回匹配的开始位置与结束位置。而仅仅是返回找到的字符串。 如果在模式串中用圆括号指定的匹配分组,则返回值有多个分别对应各个匹配分组的捕获结果。 分组可以相互嵌套,捕获结果返回的
转载
2024-02-24 23:40:52
100阅读
成员变量 成员方法 定义成员方法 self关键字是成员方法定义的时候,必须填写的。 它用来表
原创
2022-10-15 01:42:15
147阅读
构造函数JavaScript的构造函数中可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加。通过这两种方式添加的成员,就分别称之为静态成员和实例成员。静态成员:在构造函数本身上添加的成员称之为静态成员,只能由构造函数本身来访问。实例成员:在构造函数内部创建的对象成员成为实例成员,只能由实例化的对象来访问。// 构造函数中的属性和方法我们称为成员,成员可以添加
转载
2023-11-20 13:29:29
94阅读
1、类的成员分为静态成员和实例成员。为什么设计出静态成员和实例成员?
静态成员对类以及类的所有实例有意义,实例成员对每个实例有意义。考虑,Person类,有个age字段和maxAge字段。每个Person实例都有自己的age,但所有的Person实例都有相同的maxAge(最大年龄极限),因此,maxAge只需要一份就好了,大家共享。有两个好处:节约内存和保持一致。
2、成员分为字段和方法,首
转载
2013-11-25 20:08:00
169阅读
Python类的成员一、细分类的组成成员类大致分为两大部分:静态属性动态方法class A:
# 静态属性部分
name = "dogfa"
age = 18
# 动态方法部分
def __init__(self, name, age):
self.name = name
self.age = age
class A
转载
2023-08-21 11:41:35
145阅读
1、什么是类成员?什么是实例成员? 类成员:用关键字static进行修饰的成员变量 实例成员:不用关键字static进行修饰的成员变量类(class)和实例成员(object)是两种以计算机为载体的计算机语言的合称。实例成员是对客观事物的抽象,类是对实例成员的抽象。类是一种抽象的数据类型。 它们的关系是,对象是类的实例,类是对象的模板。实例成员是通过new classname产生的,用来调用类的方
转载
2023-07-19 16:09:36
512阅读
对象成员(实例成员): 没有加static修饰符的属性和方法就是实例成员。实例成员每new一个对象都是新建一个内存地址,每个对象里的实例成员指向的都是各自的内存地址。例如: 每个对象里的实例成员指向的都是各自的内存地址,所以无论如何更改也不会影响到其他的对象实例属性。类成员(静态成员): 加上static修饰符的方法和属性就是静态成员。静态成员的内存地址
转载
2023-11-17 15:19:23
63阅读
1、从语义上讲,静态成员对类有意义,类和所有实例共享。实例成员对实例有意义,每个实例都有专属于自己的。如何理解?举例来说,Person类的Age应该是实例成员,每个Person实例都有自己的Age,而MaxAge(年龄的最大极限,比如说200岁),应该是静态成员,因为MaxAge对于人类(包括所有人)有意义,也就是说,所有人的年龄最大极限都是200岁。
2、从内存分配上看,成员分为字段和方法(C#
转载
2012-10-27 10:34:00
142阅读