聚合类,字面值类型,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第五版
阅读全文
0 0
- 聚合类,字面值类型,constexpr函数
- constexpr与常量表达式,函数,字面值常量类
- (45)聚合类、字面值常量类
- 字面值类型
- constexpr函数
- constexpr函数
- 字面值,散列,函数字面值
- nullptr,constexpr和constexpr函数
- Java 字符串类型16进制字面值转成字面值字节数据工具类
- [C++] 字面值的类型
- C++ constexpr类型说明符
- C++ constexpr类型说明符
- C++中字面值常量和字面值类型
- C++中字面值常量和字面值类型
- 默认实参,constexpr函数
- C++ 指定字面值的类型
- c——内置类型字面值
- swift——内置类型字面值
- Adreno Profile 介绍使用及自定义工具
- 关于Unity3D 引用类型变量new之后,任然为null 的 解决办法.
- spring中的方法注入详解
- 【模板】FFT
- NOIP 2014 联合权值 [DFS]
- 聚合类,字面值类型,constexpr函数
- Java多线程(七):Callable和Future
- JS实现点击目录名变换颜色的效果实例
- Hbuilder MUI 页面刷新及页面传值问题
- POJ
- TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
- 允许其他APP启动您的Activity
- java中String,StringBuilder ,StringBuffer的区别?它们的各自优点在哪?
- 以太坊简介