用typedef自定义的数据类型

严格说,它不是一种新类型,使用typedef一般用来达到以下几个目的:

1,用来定义一种类型的别名,比如说一个类型名称特别长,为了书写方便和便于代码的阅读,实现别名功能(复杂名字简单化),

typedef char* PCHAR;
PCHAR pa, pb;
struct Hello_hi_bye  //假设有这么2b的名字,这么复杂
{	
	int b;
	float c;
}//可以简化	
typedef hello_hi_bye  ty;
 
//如此以来就可以减轻写代码的负担
 
hello_hi_bye  a;
hello_hi_bye b;
hello_hi_bye c;
 
//可以改写为
ty a;
ty b;
ty c;
//恩轻松多了!

2,若是在一个struct或者class里面使用的话,可以达到一种比较奇妙的效果,叫保存一种类型,有点抽象,以例子解释

#include<iostream>
struct Test
{
	typedef int  Aa;  //Aa 
	float a;
	int b;	 
};
 
 int main()
 {	 
	 Test::Aa aa = 5;  //其实 aa就是int 的类型 
	 std::cout<<aa<<std::endl;   //输出5	 
	 return 0;
 }

表面看,貌似多此一举,直接int a=5不就可以了吗?再看下面例子

struct Test
{
	typedef ClassA  Aa;  //Aa 
	ClassA a;
	int b;	 
};

这样的话,就可以实现一个新的功能,通过变量名字找到它的类型名

比如,我知道有个变量Test x, 我想要拿到x.a, 但是我不知道x.a是什么类型的,写代码的时候需要定义一个和x.a一样类型的变量y=来接受这个x.a, 现在的问题就是把y声明成什么类型呢?那么我们就可以这样写,

Test::Aa  y = x.a;

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/83302058
今日推荐