C++ 日日新

Robert C. Martin 曾说,衡量代码质量的唯一有效标准:WTF/min。即你 review 代码时每分钟内默念握草的次数。

今天又是塞翁失马焉知非福的一天。
花了大量的时间来找程序的错误,不知不觉中对业务代码的熟悉上了不止一个台阶。学到了几个 C++ 的语法知识。

1. enum 类

话不多说,先上个例子:

enum optype {INT, FLOAT, DOUBLE, BOOL};

格式说明:

  • 关键字enum——指明其后的标识符是一个枚举类型的名字。
  • 枚举常量表——由枚举常量构成。枚举常量表列出枚举类型的所有取值,取值类型与条件表达式相同。

枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值,默认状态下,这个整数就是所列举元素的序号,序号从0开始。 可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。 各枚举常量的值可以重复。例如:

enum optype {INT, FLOAT, DOUBLE=1, BOOL};
// 枚举常量 INT=0, FLOAT=1, DOUBLE=1, BOOL=2}

打印enum值

enum optype {INT, FLOAT, DOUBLE=1, BOOL};
optype op;
// op 赋值语句略
std::cout << static_cast<std::underlying_type<optype>::type>(a) << std::endl;

(部分内容参考菜鸟教程)

2. final 关键字

今天在代码中看到了这个关键字,就顺手查了一下,大概是两个用途:

  1. 禁止继承:即 无法继承含有该关键字的类,会导致编译错误。
  2. 禁止重写:即 将方法标记为final,这意味着无法再子类中重写该方法。
3. 析构函数中的冒号

冒号后跟参数列表及值,初始化的顺序只跟类中声明的顺序一致

用途大概三类:

  1. 对父类进行初始化
  2. 对类成员进行初始化
  3. 对类的const成员变量进行初始化

让我感兴趣的主要是第三点,因为:

由于const成员变量的值无法在构造函数内部初始化,因此只能在变量定义时赋值或使用初始化列表赋值。

另有注意事项:

对于2、3中的应用场景,有以下两点说明:
1、构造函数列表初始化执行顺序与成员变量在类中声明顺序相同,与初始化列表中语句书写先后无关。
2、相对于在构造函数中赋值,初始化列表执行效率更高。

摘自:https://blog.csdn.net/lusirking/article/details/83988421

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值