wlbk.net
当前位置:首页 >> C++在类构造函数初始化数组 >>

C++在类构造函数初始化数组

monthday[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; 这样的写法只能在定义数组时使用,你已经定义好了数组,你在这样写“monthday[13]“就变成一个数组里面的元素了,而不代表数组,而且还是越界的元素..汗.你写 monthday[13] = 1;会编译成功,但是运行会出错.因为他是越界的..汗.即使你在main函数里先定义一个数组,在这样赋值..那都是错误的,不可能是对的.你只能白数组元素一个一个的赋值了,不能这样写了

有两种方法,一种是使用初始化列表,一种是C++11提供的类内初始化.初始化的参数通常为列表,即数组的列表初始化,对于char数组还可以用字符串字面值作为初始化的参数.数组通常使用列表进行初始化,如果列表元素小于数组大小,则

//#include #include using namespace std;class Point{public: Point(double _x = 0, double _y = 0) : x(_x), y(_y) { cout

你这个初始化时对的,都在构造函数里面初始化变量.card **deck = new card* [52]; 你这个[]前面为啥要有*个呢?这个是为deck分配一块card的内存空间,这个构造函数被调用来分布内存,是通过调用其地址实现的.

你在构造函数中声明了这么个数组double a[32]={0};也就是说此处的a把类中原有的a给隐藏了,类似于全局变量和局部变量的关系一样.你初始化的是这里新定义的a,而不是类的成员a;你把double a[32]={0};这句删掉就行了

for(i=1;i 追问: 谢谢了!改了数组下标还是不能运行,然后就是我知道默认为private,所以直接省略了.帮忙看看还有其他的问题吗? 追答: //你这个问题很多 大概改的的运行了 给你重新写了一下 快好了 今天时间来不及了 马上停电

找规律 你除了最后一条 其他全部都是一样的 可以用for循环赋值 减少编码量

C++如何用构造函数初始化字符串数组:比如有这样一个类:Class XXX{int a;char c[10];};方法:XXX::XXX(int num, cosnt char* str){ a = num; strcpy(c, str);}

a是b,c,d的父类.a *list[5]=new a[5];list[0]=new b;list[0]=new c;list[0]=new d;

比如说char Name[20]={zhangsan,lisi.wangwu};这就给前三个数组赋值了,后面的值都默认为0学这东西要理论和实践相结合,多看看书吧

网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com