关于“强类型”与“弱类型”
  • 板块学术版
  • 楼主Redshift_Shine
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/8/14 17:46
  • 上次更新2023/11/3 03:49:45
查看原帖
关于“强类型”与“弱类型”
475403
Redshift_Shine楼主2023/8/14 17:46

rt。

根据洛谷发布的SCP模拟赛答案,C++被认定为是弱类型语言。

于是我们机房展开了激烈的口水战讨论。

结果没有一个结果。

我认为两者似乎都有他们的依据(?:

1. 强类型

在C++中,每一个变量声明时都必须为其确定明确的类型。

如:

int a=3;
double t=1.14514;
char ch=L'啊';
string s="1919810";

2. 弱类型

在一道IOI题目中,IOI组委会展示了如下可以在C++17标准下编译通过的代码:

std::variant<bool, std::vector<int>> foo(int N) {
    return N % 2 == 0;
}

std::variant<bool, std::vector<int>> goo(int N) {
    return std::vector<int>(N, 0);
}

std::variant<bool, std::vector<int>> hoo(int N) {
    if (N % 2 == 0) {
        return false;
    }

    return std::vector<int>(N, 0);
}

其中出现了一种模板类:std::variant<_Tp1,_Tp2> 。

对于这种模板,你可以为其赋一个 _Tp1 类型的值,也可以为其赋一个 _Tp2 类型的值。

这,可能可以成为C++是弱类型语言的依据。

请问各位有何看法?

(问个问题,这楼有多高?)

2023/8/14 17:46
加载中...