不同成员变量的初始化方式
##变量分类:
一般变量(int):以在初始化列表里或者构造函数里初始化,不能直接初始化或者类外初始化
静态成员变量(static int):必须在类外初始化
常量:(const int)必须在初始化列表里初始化
静态常量:(static const int):静态常量必须只能在定义的时候初始化.
#include <iostream>
#include <string>
using namespace std;
class Test
{
private:
int a;
static int b;
const int c;
static const int d=4;
public:
Test():c(3)//,a(1)或者在初始化列表里初始化
{
a=1;
}
};
int Test::b=2;
void main()
{
Test t;
}
##复制初始化、直接初始化和值初始化
复制初始化:int ainit=100;
直接初始化: int ainit(100);’
上两种是语法格式的区别,值初始化不是。
值初始化通常用在初始化一段连续的内存区( 如vector容器,new一段空间 )。
vector ivec(10);