sch*_*312 2 c++ types qualifiers
C++有内置类型,如long long int
,unsigend int
.类型可以与限定符组合,例如const
,volatile
和mutable
.
为什么是long long int
数据类型?为什么没有命名longLongInt
?多字数据类型如何工作?我可以定义自己的吗?
是否可以根据自定义数据类型定义自定义限定符?
例如,考虑3D中的线性代数向量.可以定义一个LinAlVector类,它包含向量的x,y,z分量.
如果我现在需要确保,这个向量是一个单位向量(长度等于1),我想知道我是否可以写
isUnit LinAlVector vec(x,y,z);
Run Code Online (Sandbox Code Playgroud)
其中isUnit
是影响行为的修饰符LinAlVector
(例如,如果定义了非单位向量,则为编译器错误).
我知道OO直截了当的方法是派生类UnitLinAlVector
的LinAlVector
.
为什么是
long long int
数据类型?为什么没有命名longLongInt
?
因为这是由标准委员会决定的名称.可能选择了该名称,因为它与C99中的等效数据类型名称相同.
对于它的价值,如果它被命名longLongInt
,那么必须在该语言中引入新的关键字.这是需要避免的,因为引入新关键字不是向后兼容的.long long int
没有引入任何关键字因为long
并且int
已经是关键字.
我可以定义自己的吗?
不,作为该语言的用户,您可以创建类型别名和新类类型,但不能创建新的基本类型.
作为编译器实现者,你可以.
是否可以定义自定义限定符
不是该语言的用户.
归档时间: |
|
查看次数: |
61 次 |
最近记录: |