C++分离了对象的定义和构造函数
C++ separate definition and constructor of object
各位专家,请原谅我提出的这个相当愚蠢的问题。我正在尝试使用Sanders教授的4heap优先级队列,可在以下网址获得:
http://www.mpi-inf.mpg.de/~砂光机/程序/spq/heap4.h
在一个我可以轻松完成的功能中:
Heap4<int, int> myHeap(myMax, -myMax, 10000);
问题是,我想把myHeap的定义和结构内部的初始化分开,比如:
struct myStruct{
Heap4<int, int> myHeap;
void myInit(){
myHeap=....
}
};
因为我想避免通过引用在同一结构中使用myHeap的其他函数来传递myHeap。这可能吗?
尽管您可能应该在构造函数初始化列表中初始化myHeap
,但这就是在函数中为其赋值的方法:
myHeap = Heap4<int, int>(myMax, -myMax, 10000);
编辑因为Heap4
似乎没有默认构造函数,所以您必须在构造函数初始化列表中对其进行初始化:
struct myStruct
{
Heap4<int, int> myHeap;
myStruct() : myHeap(myMax, -myMax, 10000) {}
};
相关文章:
- 具有自定义构造函数 (C++) 的类型的动态数组分配
- 当类成员参数具有相同的名称时,如何定义构造函数?
- C++定义构造函数使对象成为非 POD
- 请描述一下在 c++ 中在此类中定义构造函数的方式?
- 不为 emplace() 定义构造函数的解决方法
- 已定义构造函数的构造函数无法识别
- 在自定义构造函数中的堆上创建指针
- c++ 17 中结构自动定义构造函数的规则是什么?
- Python 错误:在 SWIG 生成的C++模板化代码模块中没有定义构造函数
- unique_ptr看不到派生类的自定义构造函数
- 两种类型的定义构造函数有什么区别?第一个使用":",第二个用大括号(如函数)定义它
- 为什么一个非平凡的成员需要为同一类中的匿名联合定义构造函数
- 为其成员根据模板基类存在的类定义构造函数
- 如何在派生类上具有默认行为,而不是重新定义构造函数
- 在结构中定义构造函数
- 将从基类继承的构造函数与自定义构造函数混合使用
- 如何在模板类外部定义构造函数
- C 需要使用自定义构造函数的帮助
- 可以联合包含具有用户定义构造函数的类的对象
- 具有用户定义构造函数的非聚合类的值初始化