我发现自己编写了很多类型别名(typedefs)以使代码更容易更改,但同时有些东西告诉我要避免这样做,因为它会给将要与我一起工作的人造成很多混乱。代码。
也许不是最好的例子,但看看这里。我还会举一个最近的例子;这些是我在构建 XML 解析器时摆弄的一些类:
namespace XML
{
struct Attribute
{
typedef std::string name_t;
typedef std::string value_t;
Attribute(const name_t &name, const value_t &value = "");
name_t name;
value_t value;
};
}
namespace XML
{
class Element
{
private:
typedef std::list<Attribute> attribute_container;
typedef std::list<Element> element_container;
public:
typedef attribute_container::iterator attribute_iterator;
typedef attribute_container::const_iterator const_attribute_iterator;
typedef element_container::iterator element_iterator;
typedef element_container::const_iterator const_element_iterator;
typedef std::string name_t;
typedef std::string data_t;
...
private:
name_t _name;
data_t _data;
attribute_container _attributes;
element_container _child_elements;
以这种方式做事使编写代码更容易,也许它有点直观,但这种做法的缺点是什么?