我有一个cpp文件,它只使用一个大类的一个方法。为此,我通常包括大类声明头文件。我可以只包含一个类的特定成员方法吗?
答案 0 :(得分:1)
简短回答:不。
当您包含标题时,您将包含整个标题(减去可能通过预处理程序指令删除的任何内容)。
此外,如果您所包含的标题声明为“大类”,则很可能该类应该重构。
最后,最终并不重要,因为编译器会为您优化一些东西。在你描述它们之前不要试图优化它们(在这种情况下,即使你能做到这一点,它也没有任何好处)。
答案 1 :(得分:0)
不能通过#include
预处理器命令从类中只包含一个方法。对于最常见的情况,编译器需要知道类和所有方法,以了解您使用的方法是否存在。
现在在处理模板类时,编译器只会编译使用的代码/函数,但是您仍然必须包含整个类,以便编译器可以检查方法是否存在。例如:
template<class A>
class A {
public:
void foo();
void bar();
}
int main {
A a;
a.foo();
}
在前一种情况下,只编译和优化foo,而不是bar。