в моей программе на C ++ у меня есть несколько пространств имен, которые содержат несколько указателей с одинаковыми именами.
Затем я хочу, чтобы функция выбрала пространство имен в соответствии с параметром. То есть что-то вроде:
#include <iostream>
namespace ns1{
double x[5]={1,2,3,4,5};
}
namespace ns2{
double x[5]={6,7,8,9,10};
}
int main(){
int b=1;
if(b==1){
using namespace ns1;
}
if(b==2){
using namespace ns2;
}
std::cout << x[3] << std::endl;
}
Однако, это не работает, так как компилятор жалуется, что x не известен в этой области. Я предполагаю, что проблема в том, что «использование пространства имен ...» допустимо только в операторе if.
Я думаю, что можно каким-то образом переключать пространства имен, но не могу понять, как ...
Вы знаете, как это сделать, не разыгрывая все переменные отдельно?
int main(){
int b=1;
double *x;
if(b==1){
x = ns1::x;
}
if(b==2){
x = ns2::x;
}
std::cout << x[3] << std::endl;
}
Ура,
Pascal