我曾经了解过C++是一种静态类型语言,但新的C++规范引入了一种新的语法auto
,它可以自行确定变量类型。那么C++还能被认为是一种静态类型语言吗?
不,这并不会使C++成为动态类型语言。auto
只是一种编译时的类型推断方法。生成的代码与不使用auto
完全相同,并且类型无法在运行时更改。
C++仍然是一种静态类型语言,具有auto类型说明符,因为auto表示类型将在编译时由编译器推断,而不是在动态类型语言中在运行时推断。
auto i = 42; // 42 is an int -> i is an int
i = "test"; // can't assign a string to an int