gpt4 book ai didi

C++ 为 API 中定义的结构创建父类(super class)

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

我有一个我无法更改的 API 接口(interface)。该接口(interface)包含两个结构。由于它们非常相似,我想将两个结构的实例存储在同一个集合中。

据我所知,我需要为这些结构创建一个父类(super class),以便我可以将这两个结构的实例添加到集合中。但是否可以在不更改界面本身的情况下这样做?

最佳答案

您不能在 C++ 中创建类的父类(super class),但可以使用 std::variant将两个结构添加到集合中。

或者,如果您希望以相同的方式访问每个结构中的某些变量/方法,您可以创建一个封装这两个结构的新类:

// structs from the API

struct A {
int some_int;
string some_string;
};

struct B {
int some_int;
string some_string;
}

// new struct that you write
struct ABInterface {
int some_int;
string some_string;

// "copy" constructor from A object
ABInterface(A a) {
some_int = a.some_int;
some_string = a.some_string;
}

// "copy" constructor from B object
ABInterface(B b) {
some_int = b.some_int;
some_string = b.some_string;
}
}

关于C++ 为 API 中定义的结构创建父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269780/

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