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),
};
我试了各种参数的书写方式有提示类似的不能输入类中,是不是构造函数除了问题啊?请各位大侠支招啊!!!这是我们的期末作业~跪求各位帮忙啊!!! 展开
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),
};
我试了各种参数的书写方式有提示类似的不能输入类中,是不是构造函数除了问题啊?请各位大侠支招啊!!!这是我们的期末作业~跪求各位帮忙啊!!! 展开
2个回答
展开全部
你就一个一个手动赋初值就行了啊。
再说 (510,2,640,2120,"普通",ST0[0][20]), (518,2,610,1950,"普通",ST1[0]),
的 最后一个参数怎么能一会是ST0[0][20],一会就变成指针了呢?
再说 (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网上有许多产品团购,便宜有口碑
选错了迭代器,用list<int>::iterator 。
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询