【发布时间】:2011-04-25 12:17:21
【问题描述】:
在 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()
{
}
我的问题:
你们怎么看?如果这是一个好习惯?
注意我最感兴趣的是这种做法的论点,看看我是否遗漏了一些能让我同意 Scott Meyers 的东西。
【问题讨论】:
标签: c++ include forward-declaration effective-c++