C++中类成员变量的初始化以及函数变量初始化
2012-03-08 12:48
295 查看
1.类成员变量初始化
以前用JAVA,在类中可以随意初始化成员变量,没想到C++中完全不一样。所以总结一下C++中的成员变量初始化方法:
如: int a; //编译能通过,但a的值不确定
int a1=1;//错误
const int a2;
const int a3=1;//错误
static int a4;
static int a5=1;//错误
static const int a6;
static const int a6=1;
主要的问题就在于变量的修饰符:const和static. 只有声明为static const的变量才可以直接初始化。那么对于非static const的变量该如何初始化呢?
对于static变量来说,可以通过 类型 类名::变量名 来初始化 假如上述代码定义在Genius类中,那么a4可以这么初始化: int genius::a4=1;
对于像a a1 a2 这样的可以通过构造函数初始化列表来初始化,如 Genius():a1(1),a2(1)
2.函数变量初始化
2.1内置类型变量初始化
内置类型变量是否自动初始化取决于变量定义的位置,在函数体外定义的都初始化为0,函数体内定义的不自动初始化。(尽量为定义的每个变量初始化)
2.2类类型变量初始化
通过构造函数。即使你没有定义初始化,系统也提供了默认构造函数。
以前用JAVA,在类中可以随意初始化成员变量,没想到C++中完全不一样。所以总结一下C++中的成员变量初始化方法:
如: int a; //编译能通过,但a的值不确定
int a1=1;//错误
const int a2;
const int a3=1;//错误
static int a4;
static int a5=1;//错误
static const int a6;
static const int a6=1;
主要的问题就在于变量的修饰符:const和static. 只有声明为static const的变量才可以直接初始化。那么对于非static const的变量该如何初始化呢?
对于static变量来说,可以通过 类型 类名::变量名 来初始化 假如上述代码定义在Genius类中,那么a4可以这么初始化: int genius::a4=1;
对于像a a1 a2 这样的可以通过构造函数初始化列表来初始化,如 Genius():a1(1),a2(1)
2.函数变量初始化
2.1内置类型变量初始化
内置类型变量是否自动初始化取决于变量定义的位置,在函数体外定义的都初始化为0,函数体内定义的不自动初始化。(尽量为定义的每个变量初始化)
2.2类类型变量初始化
通过构造函数。即使你没有定义初始化,系统也提供了默认构造函数。
相关文章推荐
- C/C++变量在内存中的位置以及初始化问题
- C++中使用初始化列表比在构造函数中对成员变量赋值更高效
- C++面向对象—成员函数与成员变量的实现机制学习笔记(1)
- C++中各种类型的成员变量的初始化方法
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- c/c++笔试题——const类型的成员函数内部如何改变成员变量
- C++中各种类型的成员变量的初始化方法(ZZ)
- C++ 成员变量的初始化顺序问题详解
- C/C++ 通过初始化列表和构造函数内赋值初始化成员变量的区别
- C++成员变量的初始化顺序问题
- 吐槽C++:C++ 类成员变量初始化 之 初始化带有参数的构造函数 的类成员变量。
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++成员变量初始化顺序
- c++ 第二章 类的成员变量、函数
- 深入理解C++对象模型-成员函数的本质以及虚函数的实现(非虚继承)
- static成员变量,staitic成员函数以及 实现只能实例化3次的类
- c++中函数中变量内存分配以及返回指针、引用类型的思考
- static 成员变量以及static成员函数
- C++之普通成员函数、虚函数以及纯虚函数的区别与用法要点
- C++中各种类型的成员变量的初始化方法(mark-好)