typedef 和 using

typedef 是 C++ 中的关键字,用于定义类型别名,使得代码更易读和维护。它可以为现有的类型创建一个新的名字,这对于简化复杂的类型声明和提高代码的可读性非常有用。

基本用法

定义类型别名:

typedef unsigned long ulong;
typedef int (*funcPtr)(int); // 为函数指针类型创建别名

ulong number = 1234567890; // 使用 typedef 定义的别名
funcPtr myFunction;        // 使用 typedef 定义的函数指针别名

常见用法

  1. 简化复杂的类型声明

对于复杂的类型声明,typedef 可以使代码更简洁。例如:

typedef std::map<std::string, std::vector<int>> MapType;

MapType myMap;
  1. 为结构体和类创建别名
struct Point {
    int x;
    int y;
};

typedef Point Point2D; // 为结构体创建别名

Point2D p1;
  1. 简化函数指针声明
typedef void (*FunctionPtr)(int, double);

void myFunction(int, double);

FunctionPtr fPtr = myFunction;
  1. 定义常量
typedef const int CI; // 创建一个 const int 的别名

CI a = 10; // a 是 const int 类型

现代 C++ 中的 using 关键字

在 C++11 及之后的版本中,可以使用 using 关键字来创建类型别名。using 是 typedef 的更现代、更强大的替代品,提供了更简洁的语法和更强的功能。

示例:

using ulong = unsigned long;
using funcPtr = int(*)(int); // 为函数指针类型创建别名

ulong number = 1234567890;
funcPtr myFunction;
  1. 为模板类型创建别名:
template<typename T>
using VectorOfInt = std::vector<T>;

VectorOfInt<int> vec; // 实际类型是 std::vector<int>
  1. 使用 using 关键字在类中定义别名:
class MyClass {
public:
    using IntPtr = int*; // 为指针类型创建别名
    
    IntPtr getPointer() { return ptr; }
    
private:
    IntPtr ptr;
};

总结

  • typedef 用于为类型创建别名,简化复杂类型的声明和提高代码可读性。
  • 在现代 C++ 中,using 关键字通常被推荐用于创建类型别名,提供了更简洁的语法和更多的功能。

这使得代码更加易于理解和维护,特别是当使用复杂类型和模板时。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王成长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值