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

Is C++ still considered as a statically typed language?

本文关键字:静态类 型语言 C++      更新时间:2023-10-16

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

不,这不会使C++成为动态类型语言。 auto只是一种编译时类型推断方法。生成的代码与没有auto完全相同,并且类型在运行时无法更改。

C++仍然是具有 auto 类型说明符的静态类型语言,因为 auto 表示编译器将在编译时推断该类型。而不是在运行时使用动态类型语言。

那么C++仍然可以被视为一种静态类型语言吗?

是的,因为此代码片段仍然无法编译:

auto i = 42;   // 42 is an int -> i is an int
i = "test";    // can't assign a string to an int