您的位置:首页 > 编程语言 > C语言/C++

[C++] 函数指针的应用

2010-08-04 14:07 204 查看
设计8个任务函数task0()-task8()只输出一句话:如task0()输出“task0 is called!”;设计一个调度函数schedule()输入一个字符串如"012345"然后返回一个函数指针数组和字符串的长度作为执行函数execute()的参数进行调度任务函数。主函数只有调度函数。

http://topic.csdn.net/u/20100707/22/d32ddaf5-1e4a-4568-bb77-5644377d8dd3.html?24649



这个题目是从这边看到的,就无聊把它做一做.....



// Task.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

void task0() { cout<<"Task 0 called."<<endl; }
void task1() { cout<<"Task 1 called."<<endl; }
void task2() { cout<<"Task 2 called."<<endl; }
void task3() { cout<<"Task 3 called."<<endl; }
void task4() { cout<<"Task 4 called."<<endl; }
void task5() { cout<<"Task 5 called."<<endl; }
void task6() { cout<<"Task 6 called."<<endl; }
void task7() { cout<<"Task 7 called."<<endl; }
void task8() { cout<<"Task 8 called."<<endl; }
void task9() { cout<<"Task 9 called."<<endl; }

typedef void (*TASK)();
TASK tasks[10] = {task0,task1,task2,task3,task4,task5,task6,task7,task8,task9};

void execute(int index)
{
    (*tasks[index])();
}

void schedule()
{
    char input[100];
    cin>>input;
    for(int i = 0; input[i] != '/0' ; i++)
    {
        execute(input[i] - '0');
    }
    system("pause");
}

int _tmain(int argc, _TCHAR* argv[])
{
    schedule();
    return 0;
}




执行范例:

03697852140
Task 0 called.
Task 3 called.
Task 6 called.
Task 9 called.
Task 7 called.
Task 8 called.
Task 5 called.
Task 2 called.
Task 1 called.
Task 4 called.
Task 0 called.
請按任意鍵繼續 . . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: