C++ 中函数参数问题及解决方法
在 C++ 编程中,函数参数过多是一个常见的问题。随着系统的发展,函数往往需要添加新的参数来支持新功能,这会带来一系列的问题。下面我们将详细探讨这些问题以及相应的解决方法。
1. 奇怪递归模板模式(CRTP)概述
奇怪递归模板模式(CRTP)结合了 C++ 的泛型编程(模板)和面向对象编程(继承)。该模式形成了一个循环,派生类从基类继承接口和实现,而基类通过模板参数访问派生类的接口。
CRTP 主要有两种使用模式:
- 真正的静态多态或静态接口 :对象主要以基类类型进行访问。
- 扩展接口或委托 :直接访问派生类,但实现使用 CRTP 提供通用功能。这可以从简单地添加一两个方法到从多个构建块或策略组合派生类接口的复杂任务。
2. 函数参数过多带来的问题
在大型 C++ 系统中,函数参数过多会导致以下问题:
- 易出错 :通常有许多相同类型的参数,容易数错。例如在设计文明建设游戏时,创建城市对象的构造函数有多个参数,很容易将参数传递错误。
class City {
public:
enum center_t { KEEP, PALACE, CITADEL };
City(size_t number_of_buildings,
size_t number_of_towers,
size_t guard_strength,
超级会员免费看
订阅专栏 解锁全文
17万+

被折叠的 条评论
为什么被折叠?



