error C2440: 'initializing' : cannot convert from 'char' to 'class BUS' 是有关二位字符数组的输入 20

c++中一个类里面我定义了一个stop成员,他是一个charstop[10][20]的二维数组,可是在初始化的时候出现上述错误,求解啊!!!哭求解答啊!!!跪求啊!!!c... c++中一个类里面我定义了一个stop成员,他是一个char stop[10][20]的二维数组,可是在初始化的时候出现上述错误,求解啊!!!哭求解答啊!!!跪求啊!!!
class SBUS{
protected:
double price;
char style[30];
public :
SBUS (){
price=0.0;
style[0]='\0';
}
SBUS (float Price,char Style[]){
price=Price;
strcpy(style,Style);
}
~SBUS(){}
}; //定义了车价和车类型的基类
class BUS:public SBUS{
int no;
char stop[10][20];
int start;
int end;
public :
BUS(){
no=0;
stop[0][0]='\0'; //待定
start=0;
end=0;
}
BUS(int No,double Price,int Start,int End,char Style[],char Stop[10][20]){
price=Price;
strcpy(style,Style);
no=No;
int i;
for(i=0;i<10;i++)
strcpy(stop[i],Stop[i]);
start=Start;
end=End;
}
void Sno(int No){
no=No;
}
void Sprice(double Price){
price=Price;
}
void Sstyle(char Style[]){
strcpy(style,Style);
}
void Sstop(char Stop[30][20]){
int i;
for(i=0;i<30;i++)
strcpy(stop[i],Stop[i]);
}
void Sstart(int Start){
start=Start;
}
void Send(int End){
end=End;
}
double Gprice(){
return price;
}
char * Gstyle(){
return style;
}
int Gno(){
return no;
}
char * Gstop(){
return stop[0];
}
int Gstart(){
return start;
}
int Gend(){
return end;
}
void showT(){
cout<<setw(6)<<"车号"<<setw(6)<<"价格"<<setw(6)<<"首发时间"<<setw(6)<<"末班时间"<<setw(6)<<"车型"<<endl;
cout<<setw(6)<<Gno()<<setw(6)<<Gprice()<<setw(6)<<Gstart()<<setw(6)<<Gend()<<setw(6)<<Gstyle()<<endl;
cout<<"车站"<<':';
cout<<Gstop()<<endl;
}
}; //派生出公交类
char ST0[10][20]={{"鲁巷"} ,{"吴家湾"}, {"卓刀泉"}, {"广埠屯"} ,{"街道口"}, {"鲶鱼套"}};
char ST1[10][20]={{"森林公园"} ,{"关山口"}, {"卓刀泉"}, {"新屋熊"} ,{"鲁巷 "}, {" 武昌火车站东广场"}};
char ST2[10][20]={{"关山一路"} ,{"关山口"}, {"新屋熊"}, {"卓刀泉"} ,{" 广埠屯"}, {"汉阳门"}};

BUS bus[20]={
(510,2,640,2120,"普通",ST0[0][20]),
(518,2,610,1950,"普通",ST1[0]),
(521,2,615,2220,"普通",ST2),
};
我试了各种参数的书写方式有提示类似的不能输入类中,是不是构造函数除了问题啊?请各位大侠支招啊!!!这是我们的期末作业~跪求各位帮忙啊!!!
展开
 我来答
杜茂彦rc
2011-06-30 · TA获得超过1143个赞
知道小有建树答主
回答量:1314
采纳率:100%
帮助的人:1220万
展开全部
你就一个一个手动赋初值就行了啊。
再说 (510,2,640,2120,"普通",ST0[0][20]), (518,2,610,1950,"普通",ST1[0]),
的 最后一个参数怎么能一会是ST0[0][20],一会就变成指针了呢?
追问
BUS bus[20]={
(510,2,640,2120,"普通",ST0[0][20]),
(518,2,610,1950,"普通",ST1[0]),
(521,2,615,2220,"普通",ST2),
};
这个是我实验的各种参数的表示方法,可是都会报错~高手,你能帮我改改吗?写个正确的初始化给我看看,谢谢了
追答
兄弟,我从来不会对类数组就行这样初始化。就是类对象本身我也没有这样初始化过。

如果是我,我会这样做:
给BUS增加init函数,然后
BUS bus[20];后这样初始化
bus[0].init(510,2,640,2120,"普通",ST0);
bus[1].init(518,2,610,1950,"普通",ST1);
bus[2].init(521,2,615,2220,"普通",ST2);

class BUS:public SBUS{
public :
void init(int No,double Price,int Start,int End,char Style[],char Stop[10][20]){
price=Price;
strcpy(style,Style);
no=No;
int i;
for(i=0;i<10;i++)
strcpy(stop[i],Stop[i]);
start=Start;
end=End;
}
}
匿名用户
2011-07-06
展开全部
list<string>::iterator
选错了迭代器,用list<int>::iterator 。
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式