第十二章 12.1.3节练习

练习12.10

下面的代码调用了第413页中定义的process函数,解释此函数调用是否正确。如果不正确,应如何修改?

shared_ptr<int> p(new int(42));
process(shared_ptr<int>(p));

解答:

这里和413页的结果是一样的,在process运行过程中,引用数值至少为2。

当process结束时,ptr的引用计数会递减,但不会变为0。

因此,当局部变量ptr被销毁时,ptr指向的内存不会被释放。

这里除了将process的参数改成引用,还要将

process(shared_ptr<int>(p));

还原为

process(p);
这样就能保证在process运行时,引用数值为1了。


练习12.11

如果我们想下面这样调用process,会发生什么?

process(shared_ptr<int>(p.get()));
解答:

这里的情况和413页,process(shared_ptr<int>(x))应该是一致的。

因为get()返回的就是智能指针保存的一般指针。


练习12.12

p和q的定义如下,对于接下来对process的每个调用,如果合法,解释它做了什么,如果不合法,解释错误原因:

auto p = new int();
auto sp = make_shared<int>();
(a) process(sp);
(b) process(new int());
(c) process(p);
(d) process(shared_ptr<int>(p));
解答:

(a) 合法的,对于sp进行了初始化,process可以对其进行使用。

(b) 非法的,不能将*int转换为一个shared_ptr<int>指针

(c) 非法的,同 (b)

(d) 合法的,但当函数结束时,内存会被释放。


练习12.13

如果执行下面的代码,会发生什么?

auto sp = make_shared<int>();
auto p = sp.get();
delete p;
解答:

应该会发生二次销毁的错误。这里由get()得到的指针,不应由delete去删除。


当智能指针对象被销毁时,这段内存也会随之释放。

挡在这里使用delete进行显式释放,则会出现二次销毁。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flash CS5实例教程(第2版) 光盘 刘杰 著 人民邮电出版社 二版时间 2012年5月 本书全面、系统地介绍了Flash CS5的基本操作方法和网动画的制作技巧,包括FlashCS5基础入门、图形的绘制与编辑、对象的编辑与修饰、文本的编辑、外部素材的应用、元件和库、基本动画的制作、层与高级动画、声音素材的编辑、动作脚本的应用、交互式动画的制作、组件与行为,以及作品的测试、优化、输出和发布等内容。   本书内容的讲解均以案例为主线,通过案例制作,学生可以快速熟悉软件功能和艺术设计思路。书的软件功能解析部分能使学生深入学习软件功能;课堂练习和课后习题可以拓展学生的实际应用能力,提高学生的软件使用技巧。   本书适合作为高等职业院校数字媒体艺术类专业课程的教材,也可作为相关人员的自学参考书。 目 录 第1章 Flash CS5基础入门 1 1.1 Flash CS5的操作界面 2 1.1.1 菜单栏 2 1.1.2 主工具栏 3 1.1.3 工具箱 3 1.1.4 时间轴 5 1.1.5 场景和舞台 6 1.1.6 属性面板 7 1.1.7 浮动面板 7 1.2 Flash CS5的文件操作 8 1.2.1 新建文件 8 1.2.2 保存文件 8 1.2.3 打开文件 9 1.3 Flash CS5的系统配置 9 1.3.1 首选参数面板 9 1.3.2 设置浮动面板 13 1.3.3 历史记录面板 13 第2章 图形的绘制与编辑 15 2.1 基本线条与图形的绘制 16 2.1.1 课堂案例——绘制沙滩风景 16 2.1.2 线条工具 20 2.1.3 铅笔工具 20 2.1.4 椭圆工具 21 2.1.5 刷子工具 22 2.2 图形的绘制与选择 23 2.2.1 课堂案例——绘制衣恋堂标志 24 2.2.2 矩形工具 29 2.2.3 多角星形工具 29 2.2.4 钢笔工具 30 2.2.5 选择工具 32 2.2.6 部分选取工具 33 2.2.7 套索工具 35 2.3 图形的编辑 36 2.3.1 课堂案例——绘制卡通形象 36 2.3.2 墨水瓶工具 42 2.3.3 颜料桶工具 43 2.3.4 滴管工具 44 2.3.5 橡皮擦工具 45 2.3.6 任意变形工具和渐变变形工具 47 2.3.7 手形工具和缩放工具 50 2.4 图形的色彩 52 2.4.1 课堂案例——绘制水晶按钮 52 2.4.2 纯色编辑面板 56 2.4.3 颜色面板 56 2.4.4 样本面板 59 2.5 课堂练习——绘制冬天夜景 60 2.6 课后习题——绘制花店标志 60 第3章 对象的编辑与修饰 61 3.1 对象的变形与操作 62 3.1.1 课堂案例——绘制风车风景 62 3.1.2 扭曲对象 69 3.1.3 封套对象 69 3.1.4 缩放对象 69 3.1.5 旋转与倾斜对象 70 3.1.6 翻转对象 70 3.1.7 组合对象 71 3.1.8 分离对象 71 3.1.9 叠放对象 71 3.1.10 对齐对象 72 3.2 对象的修饰 72 3.2.1 课堂案例——绘制草原风景画 72 3.2.2 优化曲线 79 3.2.3 将线条转换为填充 80 3.2.4 扩展填充 80 3.2.5 柔化填充边缘 81 3.3 对齐面板与变形面板的使用 82 3.3.1 课堂案例——绘制运动鞋宣传单 82 3.3.2 对齐面板 86 3.3.3 变形面板 88 3.4 课堂练习——绘制太阳插画 91 3.5 课后习题——绘制卡套图形 91 第4章 文本的编辑 92 4.1 文本的类型及使用 93 4.1.1 课堂案例——制作心情日记 93 4.1.2 文本的类型 96 4.1.3 文本属性 97 4.1.4 静态文本 101 4.1.5 动态文本 102 4.1.6 输入文本 102 4.1.7 拼写检查 102 4.1.8 嵌入字体 103 4.2 文本的转换 104 4.2.1 课堂案例——绘制水果标志 105 4.2.2 变形文本 107 4.2.3 填充文本 107 4.3 课堂练习——制作圣诞贺卡 108 4.4 课后习题——制作变形文字 108 第5章 外部素材的应用 109 5.1 图像素材的应用 110 5.1.1 课堂案例——制作啤酒广告 110 5.1.2 图像素材的格式 112 5.1.3 导入图像素材 112 5.1.4 设置导入位图属性 115 5.1.5 将位图转换为图形 116 5.1.6 将位图转换为矢量图 117 5.2 视频素材的应用 119 5.2.1 课堂案例——制作摄像机广告 119 5.2.2 视频素材的格式 121 5.2.3 导入视频素材 121 5.2.4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值