如果我有两个类:
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/