У меня есть массив struct, имеющий константные переменные;Я инициализирую с помощью списка инициализатора конструктора, но если я создаю массив этой структуры, как инициализировать все элементы массива этой структуры.если структура не содержит const var, то это легко сделать
, если структура не содержит const var, то это легко сделать
#include<iostream>
struct s_Nconst{
int num;
int x1;
// s_Nconst(int);
};
int main(){
s_Nconst sN2;
sN2.num=5;
std::cout<<"initial values of num\t"<<sN2.num<<std::endl;
//making array of s_Nconst struct
s_Nconst sN3[sN2.num];
for(int i=sN2.num-1; i>-1; i--,++sN2.num){
sN3[i].x1= sN2.num;
std::cout<<"sn3["<<i+1<<"]\t"<<sN3[i].x1<<std::endl;
}
return 0;
}
, но если предположить, что структура содержит const var, тогда я могу сделать один объект структуры, используя список инициализатора конструктора, но если я собираюсь сделать массив структуры, это дает ошибку
#include<iostream>
struct s_const{
const int x1,y1,z1;
static int num;
s_const(int,int,int);
};
s_const::s_const(int x,int y, int z)
:x1(x),y1(y),z1(z) {
std::cout<<"initial values of x1,y1,z1\t"<<this->x1<<" "<<this->y1<<" "<<this->z1<<std::endl;
}
/*struct s_Nconst{
int num;
int x1;
// s_Nconst(int);
};
s_Nconst::s_Nconst(int x)
:num(x){
std::cout<<"initial values of num\t"<<this->num<<std::endl;
} */
int main(){
int a,b,c;
a=1;b=2;c=3;
s_const s1(a,b,c);
//array of s1 is giving error
s_const sc[3];
//s_Nconst s2(++c);
//s_Nconst sN2;
//sN2.num=5;
//std::cout<<"initial values of num\t"<<sN2.num<<std::endl;
//making array of s_Nconst struct
//s_Nconst sN3[sN2.num];
//for(int i=sN2.num-1; i>-1; i--,++sN2.num){
// sN3[i].x1= sN2.num;
std::cout<<"sn3["<<i+1<<"]\t"<<sN3[i].x1<<std::endl;
//}
return 0;
}
есть ли способ сделать массив изструктуры, имеющие константные переменные и как их инициализировать?