cannot convert from 'const char' to 'char [30]'怎么办?
/*CandyBar结构包含3个成员.第一个成员存储candy bar的品牌名称;第二个成员存储 candy bar的重量(可能有小数);第三个成员存储candy bar的热量(整数).请编写一个
程序,它使用一个这样的函数,即将CandyBar的引用,char指针,double和int作为参数,
并用最后3个值设置相应的结构成员.最后3个参数的默认值分别为"Millennium
Munch",2.85和350.另外,该程序还包含一个以CandyBar的引用为参数,并显示结构内容
的函数.请尽量使用const. */
#include <iostream>
struct CandyBar
{
char brand[30];
double weight;
int calorie;
};
void setCandyBar(CandyBar &candy,char *ctr="Millennium Munch",double weight=2.85,int calorie=350);
void showCandyBar(CandyBar &candy);
int main()
{
using namespace std;
CandyBar candy1;
CandyBar &can2=candy1;
setCandyBar(can2);
setCandyBar(candy1,"大白兔",3.0,248);
showCandyBar(candy1);
return 0;
}
void setCandyBar(CandyBar &candy,char const *ctr/* ="Millennium Munch" */,double weight/* =2.85 */,int calorie/* =350 */)
{
using namespace std;
candy.brand=*ctr;
candy.weight=weight;
candy.calorie=calorie;
}
void showCandyBar(CandyBar &candy)
{
using namespace std;
cout<<"The name is "<<candy.brand<<endl;
cout<<"The weight is "<<candy.weight<<endl;
cout<<"The calorie is "<<candy.calorie<<endl;
}
编译时说error C2440: '=' : cannot convert from 'const char' to 'char [30]'
怎么改呢,不懂。