在我多年的C++(MFC)编程中,我从未觉得需要使用typedef,所以我真的不知道它用于什么.我应该在哪里使用它?有没有使用typedef首选的真实情况?或者这真的是一个特定于C的关键字?
在Effective C++(第3版)中,Scott Meyers在第31项中建议,除了经典的声明(.h)和定义(.cpp)文件之外,类应该具有前向声明包含文件(fwd.h),哪个类不需要完整定义可以使用,而不是向前声明自己.
我有点看到它的情况,但我真的不认为这是一个可行的选择...它似乎很难维持,相当矫枉过正,几乎没有必要.
但是,我可以看到它用于模板前向声明,它相当重.但对于简单的课程?这似乎很难维护,并且会创建一大堆几乎空的包含文件,这些文件只是用于非常小的目的......值得麻烦吗?
这是一个例子:
// Class.h
class Class
{
Class();
~Class();
};
// ClassFwd.h
class Class;
// Class.cpp
Class::Class()
{
}
Class::~Class()
{
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
你们有什么感想?如果这是一个很好的做法?
注意我最感兴趣的是这个练习的论据,看看我是否错过了一些让我同意Scott Meyers的内容.