【发布时间】:2019-09-18 13:56:52
【问题描述】:
我正在学习 C++。我知道 C++ 比大多数其他语言更冗长,但是在 struct/class 声明中定义 typedef 然后在 struct/class 定义中再次定义让我思考是否没有更好或更中心的地方typedef 只需要定义一次,以及这是否遵循所谓的 C++ 最佳实践。我在网上找不到任何关于此的特别信息。
将typedef 移动到更全局的位置似乎不合适,typedef 都用于定义和实现结构中的方法。
//--ProductFilter.h--
struct ProductFilter {
typedef std::vector<Product*> Items;
static Items by_color(Items items, Color color);
};
//--ProductFilter.cpp--
typedef std::vector<Product*> Items;
Items ProductFilter::by_color(Items items, Color color) {
Items result;
for (auto& item : items)
if (item->color == color)
result.push_back(item);
return result;
}
【问题讨论】: