C++中map类设为const时的初始化方法

const map的初始化

首先,在C++中,一个被const修饰的变量是需要在声明时就进行赋值的,那么,对于复杂类型,该如何进行初始化?
对于一个仅被const修饰的map,我们可以用如下方式进行初始化
在这里插入图片描述
相比C#的Dictionary的初始化,我们需要在每组值前面加上std::map<T1,T2>::value_type,value_type是泛型编程中用于同一访问容器元素的一个typedef(下图是由于C++11中用using取代了typedef)
C++中map的value_type来源

const static的初始化

当一个map再加上static修饰符时,就无法再使用上文的方法进行初始化了,编译器会抛出如下错误:
在这里插入图片描述
这里,我们就需要将声明和初始化分开写了,首先,在类中声明这个变量(这里在MailClientSocket.h中进行声明)
在这里插入图片描述
然后,转到MailClientSocket.cpp中进行初始化
在这里插入图片描述
如果将初始化放在MailClientSocket.h中,编译器会抛出一个重定义的错误
在这里插入图片描述
也就是说对于一个const static map的变量,我们的声明和初始化需要分放在 .h 以及 .cpp 中才可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值