我曾经知道C ++是一种静态类型语言,但较新的C ++规范引入了一种较新的语法auto
,可以自行确定变量类型。那么C ++仍然可以被认为是一种静态类型的语言吗?
答案 0 :(得分:12)
不,这不会使C ++成为动态类型语言。 auto
只是一种编译时类型推断方法。生成的代码与没有auto
的代码完全相同,并且类型在运行时无法更改。
答案 1 :(得分:1)
C ++仍然是具有auto类型说明符的静态类型语言,因为auto表示编译器在编译时会推断出类型。而不是在动态类型语言的运行时。
答案 2 :(得分:1)
那么C ++仍然可以被认为是一种静态类型的语言吗?
是的,因为此代码段仍然无法编译:
auto i = 42; // 42 is an int -> i is an int
i = "test"; // can't assign a string to an int