我有一个 C++ 程序 A.cpp,我包括两个头文件 Xh 和 Yh 这个程序(A.cpp)有一个类 'foo' 和该类所有成员的原型。这个类的实现是在 Xh 和 Yh 中完成的,它们都包含不同的成员函数定义。但是在程序中使用#ifdef 有条件地包含这些文件之一。因此,如果满足某个条件,则 Xh 是#include-ed,否则 Yh 是 #include-ed。他们两个永远不会被包含在一起。这是问题所在:我需要将此编译时切换更改为运行时切换。我知道在运行时不能包含头文件,那么有什么方法可以在不使用命名空间的情况下“选择”我想要的实现?排除了重载,因为函数的原型是相同的。
非常感谢。(对不起,如果这很愚蠢。我是 C++ 的新手)