我可以只包含类的特定成员方法吗?
Can I just include a particular member method of a class?
我有一个 cpp 文件,它只使用大类的一个方法。为此,我通常包含大型类声明头文件。我可以只包含类的特定成员方法吗?
简短回答:不。
包含标头时,将包含整个标头(减去可能通过预处理器指令删除的任何内容(。
此外,如果您包含的标头声明了"大型类",则很可能应重构该类。
最后,最终这并不重要,因为编译器会为您优化内容。 在分析它们之前不要尝试优化它们(在这种情况下,即使你可以这样做,也不会有任何好处(。
否,
不能通过#include
预处理器命令仅包含类中的一个方法。对于最常见的情况,编译器需要知道类和所有方法,才能知道您正在使用的方法是否存在。
现在在处理模板类时,编译器将只编译使用的代码/函数,但您仍然必须包含整个类,以便编译器可以检查该方法是否存在。例如:
template<class A>
class A {
public:
void foo();
void bar();
}
int main {
A a;
a.foo();
}
在前面的情况下,只编译和优化 foo,而不是 bar。
相关文章:
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 从内部类中的方法从包含类调用方法
- 按类成员的顺序对包含类对象的C++向量进行排序
- 我是否应该在包含虚拟方法的类上使用'memcpy'?如果没有,如何替换它?
- 实例成员与静态成员与非类方法的开销
- 从类C++外部调用指向成员方法的成员指针
- 使用相同方法但不同成员类型构建类的最佳方法
- 无法从多态嵌套类访问包含类的成员
- 如何使用 "get" 方法返回类的私有 std::unique_ptr 成员
- C 函数调用包装器包含类成员功能作为模板参数
- 在 C++11 中创建并返回包含 lambda 成员变量的类
- C++类方法包含对静态变量的未定义引用
- 我怎么可能从尚未定义某些成员方法的类创建实例?(C++)
- 有没有办法强制对 clang-format/clang-tidy 中的类成员/方法使用 "this->"?
- 如何仅通过类方法修改类公共数据成员
- 指向 objc 类成员方法的函数指针,用于C++
- C++ 包含唯一指针成员变量的类的赋值运算符
- Qt C++ 初始化类和调用方法,其中包含类中的变量
- 我可以只包含类的特定成员方法吗?
- 成员数组包含类的实例。无法决定在哪里放置修改此类变量的方法