动态创建对象

本文详细介绍了C++中动态创建对象的过程,包括使用new和delete操作符申请和释放内存,以及如何创建和销毁类类型的对象。强调了new与malloc的主要区别在于new会调用构造函数,确保创建的是一个可用的对象。总结了使用new和delete时应注意的原则,如正确匹配new[]和delete[],以及在释放内存后将指针置为空。
摘要由CSDN通过智能技术生成

动态创建对象


1new与delete申请内存

new/delete
回顾malloc/free (第12章 动态分配内存)
注:malloc申请而来的只是内存,严格地说并不是“对象”
// 4个int , 16个字节
int* p = (int*) malloc(16);
for(int i=0; i<4; i++)
p[i] = i;
free§;

new/delete
在C++中,用new/delete操作符取代malloc/free
申请一个对象 :
int* p = new int;
释放
delete p;
注意:
(1)new的返回值直接就是对象指针,不用再转换
(2)new的时候可以设初始值 new int(12);

new/delete
申请多个对象 :
例如,申请1024个int对象:
int* p = new int [1024] ;
释放
delete [] p;

注意:
(1)用[]指定对象个数
(2)如果new的时候用了[],则释放的时候使用delete []操 作符

new/delete
申请一个int, 一个double
int* p1 = new int;
*p1 = 12;
delete p1; // 用完后释放
double p2 = new double(12.34);
printf("%f \n", *p2);
de

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用以下代码在 Unity 中动态创建对象并设置 Sprite 和 Animator: ```csharp // 创建一个新的 GameObject GameObject newObject = new GameObject(); // 添加 SpriteRenderer 组件 SpriteRenderer spriteRenderer = newObject.AddComponent<SpriteRenderer>(); // 设置 Sprite spriteRenderer.sprite = yourSprite; // 添加 Animator 组件 Animator animator = newObject.AddComponent<Animator>(); // 创建一个 AnimatorController RuntimeAnimatorController animatorController = new AnimatorController(); // 创建一个 AnimatorStateMachine AnimatorStateMachine stateMachine = animatorController.layers[0].stateMachine; // 创建一个 AnimatorState AnimatorState state = stateMachine.AddState("MyState"); // 添加一个 AnimationClip AnimationClip clip = new AnimationClip(); clip.name = "MyClip"; clip.frameRate = 30; // 设置帧率 // 在 AnimationClip 中添加关键帧等动画内容 // ... // 将 AnimationClip 添加到 AnimatorState 中 state.motion = clip; // 设置 AnimatorController 的 defaultState animatorController.layers[0].defaultState = state; // 设置 Animator 的 runtimeAnimatorController animator.runtimeAnimatorController = animatorController; ``` 其中,`yourSprite` 是您想要设置的 Sprite 对象。在此代码中,我们创建了一个 AnimatorController,然后创建了一个包含 AnimationClip 的 AnimatorState,并将其添加到了 AnimatorController 中。最后,我们将 AnimatorController 赋给了 GameObject 的 Animator 组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值