c++ - 有条件地为变量分配一个类

标签 c++ class object cuda

如果我有两个类:

class A{
    f();
}

class B{
    f();
};

我需要根据以下条件将这些类之一分配给对象:

define variable
if condition1
    variable = A
else
    variable = B

然后我将使用分配的 variable.f();

最佳答案

您应该关注继承和虚函数。 代码可能看起来像

class Base
{
    virtual void f() = 0;
};

class A : public Base
{
    virtual void f()
    {
        //class A realization of f
    }
};

class B : public Base
{
    virtual void f()
    {
        //class B realization of f
    }
};

然后你可以这样做

Base* VARIABLE = 0;
if (*condition*)
{
   VARIABLE = new A();
}
else
{
   VARIABLE = new B();
}

VARIABLE->f();

但是使用继承和虚函数并不总是一个好主意。你的类 A 和 B 应该有一些共同点,至少是函数 f() 的含义。

关于c++ - 有条件地为变量分配一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15346105/

相关文章:

c++ - 堆栈超出范围。也许没有正确调用它?

c++ - 作业 - 运算符重载货币类 - 卡住/丢失

python - 在类中重复函数

java - 如何使用调用该方法的类的名称创建一个 .txt 文件?

object - 有没有办法使用ar core在3d中检测脚?

如果对象中存在值,则使用 Javascript?

javascript - 将数组组转换为对象

c++ - 如何在工作线程中重用主线程创建的 OMP 线程池?

c++ - C++ 中的全范围比较运算符?

c++ - 如何使用 C++ 获取文件的实际大小?