c++相对c是强类型语言

孤立地判定一个语言是弱类型还是强类型是没有意义的,因为在学术界还没有"strongly typed language"的统一的定义。我们只能说语言A相对于语言B是强类型的。笼统地将,强类型语言是能够禁止任何违反类型系统的代码的语言,或者说是能够捕获所有违反类型系统的错误的语言。我们说C++相对于C是强类型的,是因为C++禁止了一些C中的隐式转换,比如将void*转换为任意的指针类型。   

C语言规定所有变量的定义必须在语句之前,而C++比较灵活,可以随便定义。
C++ 是强类型语言,因为你定义了一个整型变量后,就不能付一个字符型数据给这个变量(除非你用强制类型转换)

像VB, PHP, 这些语言, 就属于弱类型语言,因为你使用一个变量,
可以不经过定义。 而且当你付不同类型数据给这个变量, 也不会编译出错,而且是允许这样做的。  
静态类型定义语言    
   
一种在编译时,数据类型是固定的语言。大多数静态类型定义语言强制这一点,它要求你在使用所有变量之前要声明它们的数据类型。Java和C是静态类型定义语言。    
   
动态类型定义语言    
   
一种在执行期间才去发现数据类型的语言,与静态类型定义相反。VBScript和Python是动态类型定义的,因为它们是在第一次给一个变量赋值的时候找出它的类型的。    
   
强类型定义语言    
   
一种总是强制类型定义的语言。Java和Python是强制类型定义的。如果你有一个整数,如果不显示地进行转换,你不能将其视为一个字符串(在本章后面会有更多如何去做的内容)。  
   
弱类型定义语言    
   
一种类型可以被忽略的语言,与强类型定义相反。VBScript是弱类型定义的。在VBScript中,可以将字符串   '12'   和整数   3   进行连接得到字符串   '123',然后可以把它看成整数   123,而不需要显示转换。

你可能感兴趣的:(C++)