gpt4 book ai didi

c++ - 根据条件将一个对象声明为多个类

转载 作者:太空狗 更新时间:2023-10-29 20:33:16 25 4
gpt4 key购买 nike

本题基于Create objects in conditional c++ statements .

但是,在我的例子中,我需要从多个类中选择一个来声明一个对象,然后将其作为参数传递给一个函数。因此,必须使用预定义名称声明对象(在本例中为 obj)。

Class1 obj;
Class2 obj;

if (...) {
obj = Class1(); }
if (...) {
obj = Class1(a, b); }
else
obj = Class2();

// Do something on declared object
DoSomething(obj.variable_);

目前,由于 obj 的声明冲突,上述方法无法工作。我应该怎么做?

最佳答案

如果您的对象在运行时不必是“多态的”,您可能不需要 std::variant。将您的代码重构为:

if (...) {
DoSomething(Class1());
if (...) {
DoSomething(Class1(a, b));
else
DoSomething(Class2());

并使 DoSomething 成为模板或重载集:

void DoSomething(const Class1&) { }
void DoSomething(const Class2&) { }

关于c++ - 根据条件将一个对象声明为多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288621/

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