c++笔记1--typedef

一.typedef
1.定义一种类型的别名

int main()
{
    typedef char* PCHAR;
    PCHAR pa,pb;
    pa = "hello";
    pb = "hello";
    return 0;
}

2.定义结构体别名

typedef struct tagPOINT1
{
    int x;
    int y;
}POINT;
POINT p1;

3.为复杂的声明定义一个简单的别名
typedef int (*A) (char, char);
A是我们定义的别名,表示的是一个指向函数的指针,
该函数有两个char类型的参数,返回一个int类型的值。
则A类型的对象可以指向任何符合上述规则的函数。

#include<iostream>
using namespace std;
typedef int (*A)(char,char);
int fun0(char a,char b);
int fun1(char a,char b);
int main()
{
    A a;
    a = fun0;
    a('a','b');
    a = fun1;
    a('a','b');
    return 0;
}
int fun0(char a,char b)
{
    cout<<"fun0"<<endl;
    return 0;
}
int fun1(char a,char b)
{
    cout<<"fun1"<<endl;
    return 0;
}
输出结果:
fun0
fun1

引用于:https://www.cnblogs.com/shijingjing07/p/5591896.html

关于第3点的例子:

Class B{
	vector<int> list = {1,2,3.0,4,5,6,7};
	void Sort(){
	}
}

Class C : B{
typedef bool (A) (int a, int b);
static A* sortFns[];
A* m_pfnSort;

void Test(){
	sortFns[] = {
    	nullptr,
    	&Sort,
   } 
   
	int toFind = 1;
	m_pfnSort = sortFns[1];
	int* p= std::upper_bound(list.begin(), list.end(), toFind, m_pfnSort);
	std::cout<<(*p)<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值