聚合类,字面值类型,constexpr函数

来源:互联网 发布:守望先锋数据 编辑:程序博客网 时间:2024/06/06 12:59

聚合类

聚合类使得用户可以直接访问其成员,当一个类满足如下条件时,我们说它是聚合的:

  • 所有成员都是public的。
  • 没有定义任何构造函数
  • 没有类内初始值
  • 没有基类,也没有virtual函数。

例如:下面的类是一个聚合类:

struct Data{    int ival;    string s;};

字面值类型

字面值类型包括:算数类型(char , bool , int 等等),引用和指针,以及字面值常量类。自定义类Sales_item、IO库、string类型则不属于字面值类型。

constexpr函数

constexpr函数是指能用于常量表达式的函数。定义constexpr函数的方法和其他函数类似,不过要遵循几项约定:函数的返回类型及所有形参都是字面值类型,而且函数中必须有且只有一条return语句:

constexpr int new_size(){     return 42; }constexpr int foo = new_sz(); //正确:foo是一个常量表达式

我们把new_sz定义成无参数的constexpr函数。因为编译器能在程序编译时验证new_sz函数返回的是常量表达式,所以可以用new_sz函数初始化constexpr类型的变量foo。
执行该初始化任务时,编译器把对constexpr函数的调用替换成其结果值。为了能在编译过程中随时展开,constexpr函数被隐式地指定为内联函数。

参考:C++primer第五版

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 面试说话不流畅怎么办 毕业前换工作怎么办 卡西欧babyg掉漆怎么办 高速过路费没交怎么办 24岁血压高怎么办 高压147低压110怎么办 宣武医院怎么办住院证 自主择业后悔了怎么办 建行app闪退怎么办 自己有房怎么办居住证 性格懒散不工作怎么办 脚受凉脚后跟疼怎么办 月子里脚着凉怎么办 腿着凉了疼怎么办 没有土地的农民怎么办 手机屁股坏了怎么办 包颈手术后睡中会勃起怎么办 武警义务兵训练不合格怎么办 空姐体检心率不齐怎么办 空姐体检差身高怎么办 锻炼过猛肌肉疼怎么办 中考体检有问题怎么办 想参军视力不够怎么办 公司体检查出乙肝怎么办 乙肝携带者福利体检怎么办 小孩没考好我该怎么办 客户考虑我该怎么办 明天中考 我该怎么办 考试考差了怎么办 没考上理想高中怎么办 我是差学生中考怎么办 衬衫后背鼓起来怎么办 高考体检表没了怎么办 高考体检视力不合格怎么办 高考体检转氨酶高怎么办 高考体检肝功能异常怎么办 高考体检有乙肝怎么办 高考体检有纹身怎么办 学校体检血压高怎么办 高考体检不属实怎么办 艺考身上有花臂怎么办