【发布时间】:2016-11-21 21:59:13
【问题描述】:
我在Base 类中有一个const char 数组。
static const char *_myArray[10];
我创建了一个子 Child1 类的 CPP 文件,并且可以使用以下语法初始化 _myArray[10]。
const char *Base::_myArray[10] = {"red", "green", "blue"};
我创建了另一个子名称Child2,我需要使用{"pink", "yellow", "brown"} 值初始化这个数组。
我在Child2 中进行了类似的尝试,但是,它无法使用这种方式初始化数组。它给出了多重初始化存在问题的编译错误。
我正在使用我的基类实例中的这个数组(从派生类进行强制转换),并且应该从派生类填充数据(因为数据可能因子类而异)。
解决这个问题的正确方法是什么? 非常感谢您的支持。
提前谢谢你!
【问题讨论】:
-
你知道不会有两个
_myArrays 吗?对于所有派生类的所有实例都是一样的。 -
不要将其设为静态或将数组声明移动到子类中。
-
你真正想要达到什么目的?
-
@RichardHodges:我的意图是使用我的基类中的一个数组(基类拥有该受保护的数组)。但是,数组数据是动态的,将由我的派生类确定。如果有多个子类,就会出现问题。
-
@mirzapinku 对于同一类的每个对象,数组的内容是否相同? IE。它是标识一种类型,还是对象的每个实例都不同?
标签: c++ inheritance char constants