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++是弱类型语言的依据。
请问各位有何看法?
(问个问题,这楼有多高?)