考虑我使用的是mpz_t类型的GNU(或GPM)biginteger库。但是,我将来可能会使用不同的库。我希望在使用不同的库时可以轻松更改代码,因此我不需要使用mpz_t更改所有类型的变量。
因此,我的问题是,如果我首先定义它是否是一个好的OO设计:
typedef mpz_t bigint;
然后在我的代码中使用bigint?如果没有,可以使用哪些其他选项?
答案 0 :(得分:1)
在这里可以看出可读性与开发人员的易用性之间的权衡。一些旨在做你所描述的类型定义的类型定义很糟糕,因为它们不仅限于逻辑数量的类型,因此它使得代码难以阅读和维护其他人......以及你(当时间过去时)。
您可以给typedef
一个机会,看看会发生什么。考虑使用单独的文件(但这是可选)来执行使用其他库时所需的所有操作(如果这是适用的话)。然后,您将只需要检查/修改项目的一个文件(当项目很大时非常有用)。