C++ typedef 關鍵字


typedef :為現有類型創建別名。

書寫typedef的聲明:

技巧 -如果定義一個變量的語句是合法的,那么在它前面加上typedef就一定合法,並且原來的變量名就成為了別名。

 1 #include<iostream>
 2 using namespace std;
 3 //聲明四個函數
 4 int Add(int,int);
 5 int Sub(int,int);
 6 int Mul(int,int);
 7 int Div(int,int);
 8 //定義指向這類函數的指針類型
 9 typedef int (*FP_CALC)(int,int);
10 //聲明一個函數s_calc_func,它根據操作符op 返回指向相應的計算函數的指針
11 int (*s_calc_func(char op))(int,int);
12 //聲明一個函數clac_func,它的作用與s_calc_func相同,但是聲明語句要簡單的多。
13 FP_CALC calc_func(char);
14 //根據op返回相應的計算結果值
15 int calc(int a,int b,char op);
16 
17 int Add(int a,int b){
18     return a+b;
19 }
20 int Sub(int a,int b){
21     return a-b;
22 }
23 int Mul(int a,int b){
24     return a*b;
25 }
26 int Div(int a,int b){
27     return b?a/b:-1;
28 }
29 //這個函數的用途與下一個函數的用途和調用方式的完全相同,參數為op,而不是最后的兩個整數
30 int (*s_calc_func(char op))(int,int){
31     return calc_func(op);
32 }
33 
34 FP_CALC calc_func(char op){
35     switch(op){
36     case'+':return Add;
37     case'-':return Sub;
38     case'*':return Mul;
39     case'/':return Div;
40     }
41     return NULL;
42 }
43 int calc(int a, int b,char op){
44     FP_CALC fp = s_calc_func(op);
45     //FP_CALC fp = calc_func(op);與上面一樣
46     if(fp)return fp(a,b);
47     else return -1;
48 }
49 int main(){
50     int a =100,b =20;
51     cout<<"calc("<<a<<","<<b<<",+)="<<calc(a,b,'+')<<endl;
52     cout<<"calc("<<a<<","<<b<<",-)="<<calc(a,b,'-')<<endl;
53     cout<<"calc("<<a<<","<<b<<",*)="<<calc(a,b,'*')<<endl;
54     cout<<"calc("<<a<<","<<b<<",/)="<<calc(a,b,'/')<<endl;
55 }
int (*s_calc_func(char op))(int,int);的意思是:調用s_calc_func(char op)函數 返回的是int (*pf) (int,int)類型的函數指針.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM