永发信息网

c++ 类在定义对象时能这样定义吗

答案:4  悬赏:70  手机版
解决时间 2021-04-01 01:51
class FILE
{
...
};
void main()
{
int n;
FILE user[n];
...
}
“FILE user[n];”这里为什么会报错啊
像这样该怎么定义
FILE user[100];也报错 我晕 怎么回事 谢啦
error C2512: 'CBank' : no appropriate default constructor available
我程序里的类名是CBank
有构造函数
CBank::CBank(char *t,char *p)
{
name=new char(strlen(t)+1);
key=new char(strlen(p)+1);
strcpy(name,t);
strcpy(key,p);
nub=0;
}
对象定义是CBank user[100](t,p);但是报错
最佳答案
对象数组初始化,FILE user[2]={FILE(xx),FILE(xx)};
xx代表某某数据,就是用这种形式调用构造函数,一个个的初始化,不骗你.
你也可以用默认的,FILE user[100];但是你的编译器报错了,为什么?我来告诉你,因为你自己写了构造函数,所以系统不会再为你提供没有参数的默认构造函数了,所以你还得再写一个这样的构造函数:FILE(){};
yes!给分吧
全部回答
这里是定义数组的错误,定义数组中的n必须是常数,即必须对n赋初值。不然,系统就不知道为数组开辟多少的内存空间。这是初学者常犯的错误。
myclass a:定义一个对象,调用1次构造函数。 b[2]:定义含有两个元素的数组,实际上定义两个对象,所以调用2次构造函数。 *c:定义指向类对象的指针,但没有进行实际的内存分配,所以不调用构造函数。 **d:定义指向类对象指针的指针,但没有进行实际的内存分配,所以不调用构造函数。 *e[2]:定义含有两个指向类对象的指针的数组,但没有进行实际的内存分配,所以不调用构造函数。 *f=new char a:这个语句有问题,f是指向myclass的对象,你却让它指向char类型的变量。应该改成:*f=new myclass,涉及到内存的分配,调用1次构造函数。 *g=new myclass [2],涉及到内存的分配,调用2次构造函数。 总结:只有涉及到内存分配的时候,才会调用构造函数。普通对象调用一次,对象数组调用n次(该数组含有n个元素)。只定义指针而不给指针赋值,则不涉及内存分配,不调用构造函数。
定义 类的数组,则 该类中必须有一个默认的构造函数 即:你的FILE 类中有一个这样的函数FILE()或者,里面的参数全部有默认值 即: FILE(int a = 0,double b = 0.0)这样的构造函数才可以 还有就是向楼上说的, n不能是可变的,必须是常数才可以
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
梦见杀了一头大肥猪,别人分了一条肉和猪蹄,
我 是男孩穿了丁字裤被妈妈发现了
某固体物质的溶解度曲线如图所示,根据图回答
花花参加过哪些综艺节目?
eclipse调试当前指令指针
一个月只玩王者荣耀21g够用吗?
(0577) 1000 0是什么电话
农村公路3.5米宽,1000米长.0.15米厚需多少c25
世界上有多少下叫李嘉潼的
pe75给水管的内径是多少
从春联谈年俗
姚记肚包肉怎么样
有谁吃过在途日本正品pola/宝丽megacut餐
信洁家政地址好找么,我有些事要过去,
【国电瑞驰】正确,已积31分。多选题:高处作业
推荐资讯
如何用照片低调的在朋友圈炫富
军校学员假期表现情况及家长对学校意见和建议
求二重积分题
七秀 冰心诀好 还是 云裳心经好
1>/dev/null 2>/dev/null 跟
一年级看图写话小兔和小羊在过河怎么写
什么是强电井?什么是弱电井?它们有什么区别
取名字叫和韵可以吗
终极一班6有没有汪东城
海丰公平房产证过户要去哪里过。
一个男生给一个女生每天晚上00:02发消息是什
练肌肉对身体有害吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?