C ++:使用另一个类中的参数初始化对象数组

罗夏

我正在尝试创建一个类,该类将具有另一个类的对象数组作为其成员。这个“较低”的类构造函数需要一个参数(没有默认的c-tor),我不确定如何做到这一点。

In .hpp
class ProcessingElement : public sc_core::sc_module
{
public:
    ProcessingElement( sc_core::sc_module_name name );
    sc_core::sc_module_name name;
};

In .cpp
ProcessingElement::ProcessingElement( sc_core::sc_module_name name ) : name(name) {
    //not relevant
}

和“上”类:

In .hpp
class QuadPE : public sc_core::sc_module
{
public:
    QuadPE( sc_core::sc_module_name name );
    ProcessingElement pe[4];
};

In .cpp
QuadPE::QuadPE( sc_core::sc_module_name name ) : pe[0]("PE0"), pe[1]("PE1"), pe[2]("PE2"), pe[3]("PE3") {
    //non relevant
}

这显然会产生错误,但是我不确定如何解决。如果可能的话,我想避免使用向量,因此我在SO上发现的一些包含向量的解决方案对我来说并不理想。

注意,sc_core::sc_module_name是typedefconst char*或类似的东西,可悲的是现在无法查找。

谢谢。

讲故事的人-Unslander Monica

只需聚合初始化数组即可:

QuadPE::QuadPE( sc_core::sc_module_name name ) : pe{"PE0", "PE1", "PE2", "PE3"} {}

虽然您可能不想使用std::vector,但我仍然建议您std::array看看。它也是一个聚合,用作c样式数组上的薄包装(零开销)。但是,它具有完整的价值语义,并且是功能齐全的标准库容器。因此,您可能会发现它不太笨拙。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

另一个类的c ++私有对象:初始化并使用它调用该类中的函数

如何在 C# 中使用来自另一个类的初始化实例对象?

在 C++ 类中初始化另一个类

C# 如何在另一个类 obj 中初始化一个类 obj 的数组?

C#| 使用另一个实例的属性初始化新对象的语法

用另一个初始化一个 c++ 数组

如何初始化另一个C#类中的类中的列表以填充列表

C ++默认参数可以用另一个参数初始化吗?

在Objective-C中,如何使用tableView参考在另一个NSMutableArray中使用对象初始化NSMutableArray

如何从C中的另一个文件初始化文件中的全局值?

C ++警告:在一个声明中初始化从double到float的截断,但在另一个声明中不初始化

在C#中初始化一个类的多个对象的最佳方法

用C ++中的数组初始化一个类

C ++ 11:用另一个constexpr char数组初始化constexpr char数组

C++ 用另一个数组和新值初始化数组

从另一个对象初始化一个对象,它们共享一个公共接口 c#

对象的方法作为c ++中另一个类的方法参数

如何使用 PageObject 模型在 C# 中初始化一个完整的类?

C#中另一个类的对象

在另一个类中创建的对象的C ++数组

C:在另一个函数中初始化动态类型的2D矩阵

是否可以从结构继承而无需在C中拥有另一个初始化的结构

使用另一个元素和额外元素的内容初始化C ++(11)std :: vector

另一个类中的参数化对象初始化

C# - 我似乎无法将数组传递给不同的方法,一个用于初始化,另一个用于修改?

C ++用另一个向量初始化向量

有没有办法在 C++ 中通过函数参数初始化一个类?

C# - 在另一个类中使用参数调用一个类

在另一个类 C++ 中包含一个类对象