标题:求助!!,
只看楼主
jaojun
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-9-15
 问题点数:0 回复次数:7 
求助!!,
cpp(58) : error C2601: 'print' : local function definitions are illegal
这种情况该怎么解决!!
谢谢!!
不用看了,此问题!!谢谢

[此贴子已经被作者于2006-3-7 17:04:50编辑过]

搜索更多相关主题的帖子: function local 
2006-03-06 23:57
wanglff
Rank: 2
等 级:新手上路
威 望:5
帖 子:375
专家分:0
注 册:2005-12-21
得分:0 
把程序发出来看看

自强不息:)
2006-03-07 09:18
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
得分:0 
这种错误是文件定义错误,可能是你把函数的实现写在了main()里面了。

未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-07 09:26
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
得分:0 
把print的声明、定义和调用的代码发上来,这样好分析,要不然只能猜

谷底深深行 ,峰顶漫漫步......@_@
2006-03-07 09:30
jaojun
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-9-15
得分:0 
是操作系统进程的一个调用;
可能是类中的那个类定义有问题吧!!
#include<string>
#include<iostream>
#include<cstdlib>
using namespace std;
#define NULL 0
class Pcb
{
    public:
    Pcb(string Name,string Adress,int Time,int FRIS,char Estate)
    {name=Name;
     adress=Adress;
     times=Time;
     FRI=FRIS;
     estate=Estate;
    }
~Pcb();
    string Getname(){return name;}
    string Getadress(){return adress;}
    int Gettime(){return times;}
    int GetFRI(){return FRI;}
    int Getestate(){return estate;}
    void changestate()//状态改变
    {
    if(times==0)
    estate='E';
    FRI=0;
    }
    void runtimes()//运行优先级及次数减少
        {
        times=times-1;FRI=FRI-1;
     }
    Pcb* next;
    private:
    string name;
    string adress;
    int times;
    int FRI;
    char estate;
};//类的声明
Pcb findFIR(Pcb a)//查找优先级
{
Pcb* b;
Pcb* c;
b=&a;
int temp;
temp=b->GetFRI();
c=&a;
while(b->next!=NULL)
{
b=b->next;
if(temp<b->GetFRI())
{temp=b->GetFRI();
c=b;
}
return *c;
}
}
void print(Pcb a)//输出信息
{
  cout<<a.Getname()<<"的运行次数:"<<a.Getntime()<<"  的优先级:"<<a.GetFIR()<<" 的状态:"<<a.Getestate()<<endl;
  a.runtimes();
  a.changestate();
}
bool penduan(Pcb a)//判断一个链表是否有可执行的类
{
    Pcb* p;
    int sum=0;
    while(*p=a;p->Getestate="R"&&*p!=NULL;*p=p->next)
    {
        sum=sum+p->GetFIRS();
    }
    if(sum>0)
    return 1;
    else
    return 0;
}
int main()
{
    Pcb* p,q;
    string Name,Adress;
    int i,Time,FIRS,Estate;
    for(i=1;i<6;i++)
    { Name="k[i]";
    Adress="k[i]";
    Time=rand()%6;
    FIES=rand()%5;
    Eastate="R";
    Pcb k[i]=new Pcb(Name,Adress,Time,FIRS,Eastate);
    }
    k[2].next=k[4];
    k[4].next=k[3];
    k[3].next=k[5];
    k[5].next=k[1];
    k[1].next=NULL;
    *p=k[2];
    while(penduan(p))
    { *q=findFIR(p);
       print(*q);
    }
}

[此贴子已经被作者于2006-3-7 19:32:08编辑过]


啥都不会,只能跟着各位老大混了,请各位多多关照一下啊!!!多帮帮小弟啊!
2006-03-07 13:36
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
得分:0 

findFIR()函数少 "}"


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-07 14:21
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
得分:0 
Pcb findFIR(Pcb a)
{
}

这个函数里的{}括号不匹配。

void changestate()//状态改变
{
if(times=0) //这里 是“==”
estate='E';
FRI=0;
}

[此贴子已经被作者于2006-3-7 14:22:16编辑过]


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-03-07 14:21
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
得分:0 
提醒楼主:
1。括号在输入时要成对输入,以免忘记。
2。判断相等时,如此表达程序应该更健壮些,也有利于查错:
if (0 == times)

谷底深深行 ,峰顶漫漫步......@_@
2006-03-07 15:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-48807-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.308415 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved