踏雪有痕-变量初始化
来源:互联网 发布:mac 我的所有文件 编辑:程序博客网 时间:2024/04/30 08:41
如果变量在全局域中定义,那么系统会保证给它提供初始值0;
如果变量在局部域中定义或通过new表达式动态分配的,则系统不会提供初始值0。这戏对象被称为未初始化的(与他关联的内存区中含有一个随机的位串,可能是以前使用的结果)。
下面举两个例子(见注释):
1、
using namespace std;
int a; //未初始化,系统自动初始化为0
main()
{
int b;
cout<<a<<"/n"<<b<<endl; //会出现运行期错误
}
int a; //未初始化,系统自动初始化为0
main()
{
int b;
cout<<a<<"/n"<<b<<endl; //会出现运行期错误
}
2、
#include <string>
using namespace std;
string as; //未初始化,系统自动初始化为0
main()
{
string bs ; //未初始化,运行无误,应该调用默认构造函数。
cout<<as<<" "<<bs<<endl; //返回两个空串
}
using namespace std;
string as; //未初始化,系统自动初始化为0
main()
{
string bs ; //未初始化,运行无误,应该调用默认构造函数。
cout<<as<<" "<<bs<<endl; //返回两个空串
}
由此可以看出,对于有默认构造函数的类,在哪里定义都会默认调用构造函数初始化。
使用未初始化的对象是错误的,因此建议对每个对象提供一个初始值。
另外,初始化有两种形式:
int a = 666; //显式初始化
int a(666); //隐式初始化
int a(666); //隐式初始化
需要思考一些这两种形式调用类的那种操作符???
- 踏雪有痕-变量初始化
- 踏雪有痕-文字常量与变量
- 踏雪有痕-指针
- 踏雪有痕-数组
- 踏雪有痕-const常量
- 踏雪有痕-vector类型
- 踏雪有痕-new delete
- 踏雪有痕- 类型转换
- 踏雪有痕-三个函数一个都不能少
- 踏雪有痕-指针和引用
- 踏雪有痕-关系操作符
- 踏雪有痕-静态对象和动态对象
- 踏雪有痕-函数声明在哪里呢......
- MSN之踏雪无痕
- 【年度总结】——踏雪留痕
- 父类子类有同名变量时候的初始化
- 成员变量一定要初始化!--深有体会(收藏)
- 踏雪迎春~
- 怎么样用GHOST备份XP/VISTA系统
- Firefox播放mp3要安装quicktime问题
- java简史
- 列出SQL SERVER 所有表、字段定义,类型,长度,一个值等信息
- 列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息
- 踏雪有痕-变量初始化
- 从一位程序员那里得来的忠告
- 通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录
- 闲话WPF近期发展
- Asp.net(C#)实现验证码功能
- 俞敏洪:祝福你们,中国80后
- SOA新手入门
- First Article Of kingboyf4
- 图片验证码的实现 (转)