变量初始化
发表时间:2006-06-23 21:30:00 关键词:C++,MFC,VC,Primer,编程,教程,读书
(点击:) 把这篇文章告诉我的QQ或MSN朋友
int ival(1024);//直接初始化
int ival = 1024;//复制初始化
以前的我常用第二种用法,原因很简单:从来没见过第一种用法。直到后来学习了林锐博士的《高质量C/C++编程指南》。
那本书在讲类的构造时说道:CMyClass b = a;这种形式看起来像赋值,实际上调用的是拷贝构造函数。
那本书给我的感觉仅仅停留在类变量的初始化中,一直没有过渡到内置变量类型。直到后来,我在用VC++.NET的向导功能编程序时,才发现向导帮我产生了类似于“int i(100);”这种语法来初始化。
本书重点强调:初始化不是赋值,
引用:当定义没有初始化的变量时,系统有时候会帮我们初始化变量。这时,系统提供什么样的值取决于变量的类型,也取决于变量定义的位置。……内置类型变量是否初始化取决于变量定义的位置。在函数体外定义的变量都初始化为0,在函数体内定义的内置类型变量不进行自动初始化。……(类类型)通过定义一个特殊的构造函数即默认构造函数来实现的。这个构造函数被称作默认构造函数,是因为它是“默认”运行的。……不管变量在哪里定义,默认构造函数都会被使用。
笔记:林锐博士的《高质量C/C++编程指南》中说,如果类没有定义无参数构造函数或拷贝构造函数,系统会自动产生这两个构造函数,它们采用最简单的“值传递”和“位拷贝”来完成构造。
本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!

安安
未填
未填
未填
时间:2008-06-09 21:22:48