有没有办法放入一个未定义大小的数组并作为静态数组继承
Is there any way to put in a undefined-sized array and be inherited as a static one?
>我想知道是否有办法让类/结构中的数组没有确切的设置值,所以当它被继承时,它可能具有与其他结构不同的值。在此示例中:
struct foo
{
virtual int test[];
};
struct bar : foo
{
int test[3];
};
struct bars : foo
{
int test[5]
};
在此示例中,我尝试在 foo
类中定义一个具有 virtual 关键字的新 int 数组。如您所见,bar
的测试数组大小为 3,但在 bars
的测试数组大小为 5。但是,当我尝试将foo
继承给bar
或bars
时,它失败并给了我一个错误:invalid base class
。
编辑:抱歉,我的帖子不太清楚。我试图尽力解释一个未知大小的数组,但不知何故最终得到了一些更令人困惑的东西。另外,对于那些要说使用std::vector
的人,请重新阅读我上面的编辑
有解决方法
吗?更好的是,有没有比数组更有效的东西,它允许从继承的动态数组成为新的静态数组?
在基类中使用 std::vector...并使其受到保护。
不确定您要完成什么。无论如何,您可以使用;
struct foo
{
foo(int* t) : test(t) {}
int* test;
};
struct bar : foo
{
bar() : foo(derived_test) {}
int derived_test[3];
};
不过,使用std::vector<int>
会好得多。
struct foo
{
foo(size_t size) : test(size) {}
std::vector<int> test;
};
struct bar : foo
{
bar() : foo(3) {}
};
相关文章:
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 如何从 c++ 中类中内置的数组继承
- 从 std::数组私下继承时无法从 std::initializer_list 构造
- 删除C++中的继承类指针数组
- 继承向量/数组/列表并更改其大小
- 复制构造函数继承动态分配的数组
- 继承类的数组
- C++数组继承中的对象
- 继承构造函数不允许类似数组的初始化
- 在C++中扩展继承的数组
- 如何在C++中构建一个对象数组,这些对象都继承自一个主类
- C++类扩展(继承类中数组的不同大小)
- 指向从 1 个基类继承的不同类对象的指针数组
- 动态数组和类继承
- 继承和指针数组
- 有没有办法在继承类的基类中指定数组的大小
- 如何使数组包含从基类继承的类
- 不更新数组的继承机器人竞赛
- 有没有办法放入一个未定义大小的数组并作为静态数组继承
- 在函数中传递继承的类数组会导致内存泄漏