首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
学习总结:拷贝构造函数、常量折叠、堆\栈
时间:
2016-05-12 19:09:40
阅读:
133
评论:
0
收藏:
0
[点我收藏+]
标签:
一、关于拷贝构造函数
1、
相同类型的类对象是通过
拷贝构造函数
来完成整个复制过程的
;
2、
拷贝构造函数是一种
特殊的
构造函数
,函数的名称必须和类名称一致,它
必须的一个参数是本类型的一个
引用变量;
3、三种情况下会调用拷贝构造函数:
对象以值传递的方式传入函数参数、
对象以值传递的方式从函数返回、
对象需要通过另外一个对象进行初始化;
相关博文:
http://blog.csdn.net/lwbeyond/article/details/6202256
二、常量折叠
1、
编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表;
2、const定义的变量a=10,编译时会进行优化,即只要代码中遇到这个变量a,就会从常量表中找到对应的那个常量10来替换这个变量a,相当于宏定义;
3、所以就算我们把存储const变量a的内存内容改了,改成了20,打印变量a时仍然是打印出10.
三、C/C++中堆和栈的理解
1、C++程序内存分为6个区:
(1)
栈区——
由编译器自动分配释放
,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
(2)
堆区——(new/delete)
一般由程序员分配释放,
若程序员不释放,程序结束时可能由
OS
回收
。
(3)全局/静态区——
全局变量和静态变量被分配到同一块内存中。
(4)
自由存储区——
由malloc等分配的内存块,他和堆是十分相似的,
不过它是用free来结束自己的生命的。
(5)
常量存储区——
这是一块比较特殊的存储区,他们里面存放的是常量,不允许
修改。
程序结束后由系统释放。
(6)程序代码区——
存放函数体的二进制代码。
相关博文:
http://www.cnblogs.com/likwo/archive/2010/12/20/1911026.html
http://blog.csdn.net/nieyibin/article/details/7468323
学习总结:拷贝构造函数、常量折叠、堆\栈
标签:
原文地址:http://blog.csdn.net/djangobuaa/article/details/51352930
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!