C++基础知识---static const成员变量的初始化

本文详细介绍了C++中static const成员变量的初始化,包括何时需要定义以及定义的位置。同时,讨论了const关键字在STL迭代器中的应用,以及const成员函数的作用。还提到了C++中的成员初始化次序、构造函数的最佳实践,以及如何处理包含reference或const成员的类的赋值操作。
摘要由CSDN通过智能技术生成

         为了将常量的作用域限制于class内,你必须让让成为class的一个成员;而为确保此常量之多只有一份实体,你必须让让成为一个static成员:

Class Gameplayer

{

         Private:

                   Staticconst int Number = 5;  //常量声明式

                   Intscores[Number];  //使用该常量

};

然而你所看到的是Number的声明式而非定义式。通常C++要求你对你所使用的任何东西提供一个定义式,但如果他是个class专属常量又是static且为整数类型,则需特殊处理。只要不取他们的地址,你可以声明并使用他们而无须提供定义式。但如果你取某个class专属常量的地址,或纵使你不取其地址而你的编译器却坚持要看到一个定义式,你就必须另外提供定义式如下:

Const int Gameplayer::Number;  //Number的定义

请把这个式子放进一个实现问价而非头文件。由于class常量已在声明时获得初值,因此定义时不可以再设初值。

 

对于const关键字在STL迭代器中的使用:

STL迭代器系以指针为根据塑模出来,所以迭代器的作用就像个T*指针。声明迭代器为const就像声明指针为const一样(即声明一个T* const指针),表示这个迭代器不得指向不同的东西,但它所指的东西是可以改变的。如果你希望迭代器所指的东西不可被改动(既希望STL模拟一个const T*指针),你需要的是const_iterator;

Std::vector<int>  vec;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值