C++类型和对象、类型安全

类型和对象


  • 类型定义一组可能的值与一组运算(对于一个对象)
  • 对形象是用来保存一个指定类型值的一些内存单元
  • 值是根据一个类型来解释的内存中的一组比特
  • 变量是一个命名的对象
  • 声明是命名一个对象的一条语句
  • 定义是一个声明,但同时也为对象分配了内存空间

在C++中不同的对象使用不同大小的空间。

计算机内存不知道我们的类型,只是将它保存起来。只有当我们决定内存如何解释时,内存中的比特才有意义。

类型安全


每个对象在被定义时被分配一个类型。

不安全的操作:在变量没有初始化之前使用它,被认为是类型不安全的。

完全的类型安全是理想的,因此他是语言的一般性规则。但C++编译器不能保证完全的类型安全,但通过良好的代码训练和运行检查,可以避免违反类型安全。
理想情况是绝不使用编译器不能保证类型安全的语言特性:静态类型安全。

安全的转换

bool->char
bool->int
bool->double
char->int
char->double
int->double

不安全的转换

C++允许(隐式的)不安全转换,一个值转换另外的值,但不等于原始值的“窄化”转换。(继承了C语言的窄化特性)

不过可以使用初始化的方式,(C++11引入标准)防止被窄化:e.g

double a {2.9};
int b {a}; //此处会报错

g++ -std=c++11
(g++进行编译时请添加支持C++11的标准)

发布者

ShellV

大一萌新、笨蛋全栈开发者、信息爱好者、 速度滑冰/轮滑 运动员、裁判、教练员、 HIT动漫程序技术部吉祥物、AcgBug团队负责人、AcgBag.com小站长