Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29131
  • 博文数量: 16
  • 博客积分: 600
  • 博客等级: 上士
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-21 13:21
文章分类

全部博文(16)

文章存档

2011年(1)

2008年(15)

我的朋友
最近访客

分类: C/C++

2008-03-09 13:15:43

实现函数操作形式参数的动态操作:

   有时函数的形参是有必要用到的.这是为我们自己调用时很方便,不用繁多的键盘输入.同时也有可能要加强程序与用户的交互.也就是临时决定输入.

但是我们又不可能对每个函数都写两个函数,一个含参,一个不含参的.代码太多了.同时又不好用所谓的默认的形参.这时可用下面的方法来实现两者的兼容.

       在函数体内设一个局部变量.来替代我们的形参,或者是由键盘来输入.用一个if-else即可,要键盘输入时,就要用到这个变量来覆盖形参值.

        具体代码如下:

int CircleList<T>::InputJudger()
{
    char a;
    int i;
    while(1)
    {
        cout<<"输入要找元素的位置"<<endl;
        cin>>i;
        getchar();
        if(i<1 || i>length)
        {
            cout<<"不存在这样的元素"<<endl;
            cout<<"输入Y/y表示重新输入"
                <<"输入N/n表示退出"<<endl;
            cin>>a;
            getchar();
            if(a=='N' || a=='n')
                return 0;
        }
        break;
    }
return i;

Node<T>* CircleList<T>::GetNode(int i)
{ int b,j;
    cout<<"如果决定从键盘输入,请输入1"
         cin>>j;
    if(j==1)
    {    
        b=InputJudger();
        
    }
    else b=i;
    if(!b || b>length)//没有用键盘输入的值没有去判断,故要加一个条件

    {

     cout<<"不找结点元素"<<endl;return NULL;

    }
    Node<T>* pin=head->next;
    int flag=1;//记录位置

    while(flag!=i)
    {
        pin=pin->next;
        flag++;
    }
    return pin;
}

阅读(380) | 评论(0) | 转发(0) |
0

上一篇:单链表的应用

下一篇:头结点作用浅析

给主人留下些什么吧!~~