[英]Central Typedefs.h file - is it a good idea?
来自Java世界,其中没有typedef,我对C ++开发人员提出了一个问题:
我的任务是用C ++重写一个大的MATLAB项目。 为了了解代码的结构,我已经开始重建模块和类结构而不实际实现该功能。
我知道我经常需要像Vector
和ParameterList
这样的类/类型,它将由我尚未决定的一些框架提供。
所以我创建了一个中心头文件Typedefs.h
,其中我有类型定义
typedef void Vector; // TODO: set vector class
typedef void ParameterList; // TODO: set parameter list class
目前,这些设置为void,但我可以使用这些类型来编写类骨架和方法签名。 后来我可以用实际类型替换它们。
这是有道理的吗? 如果是,有没有办法避免在每个文件中手动包含Typedefs.h
?
我怀疑这会起作用,除非你使用,例如Vector*
。 你将无法拥有Vector
对象或参数,因此它几乎毫无意义。
并且,作为指针使用,您可以很好地进行前向声明。
无论如何,我真的没有看到任何这种需要。 您可以声明一个空类而不必实现它,并且它比typedef
更容易编写:
typedef void Vector;
VS
struct Vector{};
请注意,您将无法使用映射到相同类型的typedef
重载函数:
void foo(Vector);
void foo(ParameterList); // error: foo(void) already declared
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.