社区讨论

关于“强类型”与“弱类型”

学术版参与者 6已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo1uqpaa
此快照首次捕获于
2023/10/23 03:18
2 年前
此快照最后确认于
2023/11/03 03:49
2 年前
查看原帖
rt。
根据洛谷发布的SCP模拟赛答案,C++被认定为是弱类型语言。
于是我们机房展开了激烈的口水战讨论。
结果没有一个结果。
我认为两者似乎都有他们的依据(?:

1. 强类型

在C++中,每一个变量声明时都必须为其确定明确的类型。
如:
C
int a=3;
double t=1.14514;
char ch=L'啊';
string s="1919810";

2. 弱类型

在一道IOI题目中,IOI组委会展示了如下可以在C++17标准下编译通过的代码:
C
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++是弱类型语言的依据。
请问各位有何看法?
(问个问题,这楼有多高?)

回复

6 条回复,欢迎继续交流。

正在加载回复...