如何初始化具有常量变量的结构数组
how to initialize array of structures having const variables
我有一个具有常量变量的结构数组; 我正在使用构造函数初始值设定项列表进行初始化, 但是如果我制作一个该结构的数组,如何初始化该结构数组的所有元素。 如果结构不包含 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 numt"<<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,z1t"<<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 numt"<<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 numt"<<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 对象的数组,但必须对其进行初始化。例如,对于您的结构,它应该是:
s_const sc[3] = {{1, 2, 3}, {3, 4, 5}, {6, 7, 8}};
附带说明一下,您可能更喜欢std::array
而不是内置数组。
相关文章:
- 从结构寻址时,MMAP变量的行为很奇怪
- 访问在 C++ 结构中声明的枚举变量
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 为什么未命名的结构内联变量在每个翻译单元中没有相同的地址?
- 在类构造函数中使用结构变量
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 在类构造函数中定义结构变量的参数
- 为什么我们再次从结构对象创建结构变量?
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 模板化结构中的零大小成员变量
- C++ 结构中的可选变量(变量结构)
- 对其中一个变量的多变量结构进行排序
- 指向非指针变量结构的指针。这些变量在哪里,堆还是堆栈?
- 是好是坏:为了避免使用全局变量/结构体的属性/大量参数而使用巨型结构体
- Cpp变量/结构用于存储128位数据
- 第一私有变量结构中允许的OpenMP调用和指令
- VS2008传递变量-结构与结构组件-优点/缺点
- 在c++类成员函数中使用c库变量/结构成员
- 如何不迷失在执行'<'对于多变量结构