是否可以在 "if" 语句中声明变量?
Is it possible to declare a variable inside an "if" statement?
我想在"if"语句中声明一个变量,并在"if"语句之后对变量执行一些操作。这是我的简化代码:
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
if (a==1)
string b;
else
int b;
cin >> b;
//and some long codes using variable b
}
可以这样做吗?我应该怎么做才能使用相同的变量名来声明具有不同数据类型(在不同条件下(的变量?
No. 不能为在任何本地代码块中声明的变量设置全局作用域。变量是声明它的块的局部变量。
但是你可以考虑使用"long_code_block_using_b"的函数,你在与要声明的变量相同的块中调用 同样,如果您对所有数据类型执行相同的操作,则可以使用如下所示的函数模板。
#include <iostream>
using namespace std;
template <typename T>
T long_code_using_variable_b()
{
T b;
cin >> b;
//and some long codes using variable b
return b;
}
int main() {
int a;
cin >> a;
if (a==1)
cout << long_code_using_variable_b<string>();
else
cout << long_code_using_variable_b<int>();
}
相关文章:
- 在疯狂的部分中声明变量
- 如何在C++中为高分辨率时钟声明变量?
- 在命名空间中声明变量,在 main 中定义它,使其对所有其他文件可见
- CUDA 的性能取决于声明变量
- 如何在不为其声明变量的情况下获取和使用常量值的地址?
- C++声明变量时自动类型推断而不初始化
- 在不同循环中多次声明变量的优点
- 奇怪的错误 C2131 与 constexpr 声明变量
- 是否可以在 "if" 语句中声明变量?
- 在python-ctypes中声明变量并传递给dll函数
- 在递归函数C++中声明变量
- 只有一个定义/声明时标头声明变量的多堆定义错误
- 奇怪的未声明变量编译器错误
- 我在C++程序中声明变量时遇到问题
- 在命名空间中声明变量
- C++ lambda 按值捕获,而无需更早声明变量
- 声明变量以保存字符串列表时的内存分配
- 如何声明C 变量应突变
- 为什么允许在开关语句中声明变量?但不是声明 初始化
- 在同一命名空间中声明变量和函数是否出错?[C++]