C++local function definitions are illegal

来源:百度知道 编辑:UC知道 时间:2024/09/20 17:30:00
#include<iostream.h>
class goods
{
private:
int code;
static char name[10];
static double price[10];
static int num[10];
static int total;
public:
goods(){code=123456;}
void input();
void sell();
void start();
};

void goods::input()
{
cout<<"请输入密码:"<<endl;
int x;
while(1)
{
cin>>x;
if(x==code)
{
cout<<"欢迎进入系统!"<<endl;
cout<<"请输入需要录入的商品种类数:"<<endl;
int n;
cin>>n;
total=n;
cout<<"请输入所有商品名称、价格及数目:"<<endl;
for(int i=0;i<total;i++)
{
cin>>name[i]>>price[i]>>num[i];
}
break;
}
else
cout<<"密码错误!请重新输入:"<<endl;
}

void goods::

报一个错误,其实不止一个。
'sell' : local function definitions are illegal,此错误是由于上一个函数未结束造成。
input函数中,大括号不匹配,在末尾添加一个“}”即可解决这个错误。
但一波刚平,多波又起。再编译,出现了十几个
错误。细看看,所报不差。
void start();这是声明。
void goods::start(const goods &A)这是定义。可见二者不符。
char goods::name[i]='0';
double goods::price[i]=0;
int goods::num[i]=0;
上三外有变量重定义之错,要把类型符去掉。
int goods::total=0;亦如此
sell函数定义中,第一个break妥,建议改为return.
start函数中,把for前一大括号移到int goods::total=0;之前或之后,看你的逻辑而定。
还剩两处错误,好像与你的函数有关,我不细看了。