中央Typedefs.h文件 - 这是一个好主意

Central Typedefs.h file - is it a good idea?

本文关键字:一个 好主意 Typedefs 文件 中央      更新时间:2023-10-16

来自没有typedefs的Java世界,我有一个问题要问C++开发人员:

我的任务是用C++重写一个大型 MATLAB 项目。为了了解代码的结构,我已经开始重建模块和类结构,但没有实际实现该功能。

我知道我经常需要像 VectorParameterList 这样的类/类型,这将由一些我尚未决定的框架提供。

所以我创建了一个中央头文件Typedefs.h其中我有类型定义,例如

typedef void Vector; // TODO: set vector class
typedef void ParameterList; // TODO: set parameter list class
目前,这些

设置为无效,但我可以使用这些类型来编写类框架和方法签名。稍后我可以用实际类型替换它们。

这有意义吗?如果是,有没有办法避免在每个文件中手动包含Typedefs.h

我怀疑这是否有效,除非您使用例如Vector*.您将无法拥有Vector对象或参数,因此这几乎毫无意义。

为了用作指针,您可以很好地进行前向声明。

无论如何,我真的不认为有必要这样做。你可以声明一个空类而不必实现它,它甚至比typedef更容易编写:

 typedef void Vector;

 struct Vector{};

请注意,您将无法使用映射到相同类型的typedef重载函数:

void foo(Vector);
void foo(ParameterList);   // error: foo(void) already declared