gpt4 book ai didi

c++ - 在 C++ 中切换类实现的使用

转载 作者:行者123 更新时间:2023-11-28 00:50:31 28 4
gpt4 key购买 nike

我有一个 C++ 程序 A.cpp,我包括两个头文件 X.h 和 Y.h。这个程序(A.cpp)有一个类“foo”和该类所有成员的原型(prototype)。这个类的实现是在X.h和Y.h中完成的。它们都包含不同的成员函数定义。但是包含其中一个文件是在程序中使用#ifdef 有条件地完成的。因此,如果满足某个条件,则 X.h 为#include-ed,否则 Y.h 为#include-ed。他们两个从来没有包括在一起。问题在于:我需要将此编译时切换更改为运行时切换。我知道在运行时不能包含头文件,那么有什么方法可以在不使用 namespace 的情况下“选择”我想要的实现吗?重载被排除,因为函数的原型(prototype)是相同的。

非常感谢。(对不起,如果这很愚蠢。我是 C++ 的新手)

最佳答案

如果您希望在运行时有两种不同的行为,那么您似乎在描述多态性。考虑编写两个不同的类,它们继承自具有虚函数的公共(public)基类。然后在运行时你可以做这样的事情:

Animal &a = (x == 3) ? Dog() : Cat();

a.talk();

关于c++ - 在 C++ 中切换类实现的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14310386/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com