C ++仍被视为静态类型语言吗?

时间:2016-01-14 12:33:48

标签: c++ c++11

我曾经知道C ++是一种静态类型语言,但较新的C ++规范引入了一种较新的语法auto,可以自行确定变量类型。那么C ++仍然可以被认为是一种静态类型的语言吗?

3 个答案:

答案 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