社区讨论
关于“强类型”与“弱类型”
学术版参与者 6已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lo1uqpaa
- 此快照首次捕获于
- 2023/10/23 03:18 2 年前
- 此快照最后确认于
- 2023/11/03 03:49 2 年前
rt。
根据洛谷发布的SCP模拟赛答案,C++被认定为是弱类型语言。
于是我们机房展开了激烈的口水战讨论。
结果没有一个结果。
我认为两者似乎都有他们的依据(?:
1. 强类型
在C++中,每一个变量声明时都必须为其确定明确的类型。
如:
Cint a=3;
double t=1.14514;
char ch=L'啊';
string s="1919810";
2. 弱类型
在一道IOI题目中,IOI组委会展示了如下可以在C++17标准下编译通过的代码:
Cstd::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 条回复,欢迎继续交流。
正在加载回复...