gpt4 book ai didi

c++ - 条件c++中对象的实例化

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:09 25 4
gpt4 key购买 nike

假设我想根据特定情况实例化不同类型的对象,所以我会在 if 语句的主体内实例化它们。问题是如果你想稍后使用那个对象,你需要在实例化之前声明它。如何声明一个通用对象。有没有类似于Java中对象类的东西?

我已经进行了一些谷歌搜索,例如“通用对象 C++”和“对象类 C++”,但似乎没有类似的东西。

最佳答案

这个问题可以用接口(interface)来解决。现在,C++ 不知道接口(interface),但您可以轻松地使用抽象基类做类似的事情:

class Base { ... }
class A : public Base { ... } // A is a Base
class B : public Base { ... } // B is a Base

...

Base *X; // that's what you will end up using

if (some_condition)
X = new A(); // valid, since A is a Base
else
X = new B(); // equally valid, since B is a Base

这将要求您将通用功能放入基类中,以便您可以实际对 X 执行操作。

(如果您从 Base 之类的东西派生所有类,您最终会得到一个父类(super class),就像它在 C# 或 Java 中可用一样。但是,在我看来,泛型编程,即,C++ 中的模板大大减少了对此类父类(super class)的需求。我敢打赌,在大多数情况下,您将能够找到更好的代码设计。)

关于c++ - 条件c++中对象的实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4057774/

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