typepedef base_type data_type的含义是什么?

what is the meaning of typedef base_type data_type?

本文关键字:type 是什么 data base typepedef      更新时间:2023-10-16

我经常看到cpp类在声明的开头这样写

typedef base_type data_type

据我所知,这与使您的类与向量兼容有关。有人能指点我吗?

在谷歌上搜索这句话也会给你数百个使用这句话的链接。

typedef typename Base<T>::Foo Foo是模板编程的常用技术。

由于Base<T>依赖于模板形参T,编译器无法知道Base是否对于任何特定类型T是专门化的,因此Foo不是类型(或根本不存在)。

所以你必须告诉编译器它应该假设Foo是一个类型。

是的,这很麻烦。

但是模板是非常有用的,所以有点麻烦是值得的。:)


除了以上,typedef只是引入了一个替代名称,与原始名称只有非常细微的区别。

例如,给定int x = 42;,语句x.~int();无效,但typedef int Int; x.~Int();可以。

另一个微妙的区别是构造函数和析构函数的定义,必须使用原始的类名。


在c++ 11中,你可以像使用typedef一样使用using,例如using Int = int;