나는 다음과 같은 무언가가구성 객체는
#include "QuadMesh.h"
#include "SpecialFuncs.h"
class SEMPotential {
public:
StructureIpsim SI;
QuadMesh mesh;
SEMPotential(//args);
};
SEMPotential::SEMPotential(//args) {
// init structure in here, need to call functions from SpecialFuncs.h to do so
// How to construct the QuadMesh object mesh? Can't put in initialization list.
}
당신은 볼 수 있듯이 QuadMesh
개체는 StructureIpsim
구조체를 사용하지만이 구조체는 전달되기 전에 SEMPotential
생성자의 여러 함수를 사용하여 초기화해야합니다. QuadMesh
생성자로 이 문제를 해결하는 표준 방법은 무엇입니까?
구조체 초기화자를 통해'SEMPotential'의 생성자에서 제공 한 인수를 가진 구조체에 의해'StructureIpsim'이 올바르게 설정되도록하는 것이 좋습니다. –
이것이 가능하지 않으면'mesh '건설은'std :: shared_ptr'을 사용함으로써 지연 될 것이며, 준비가 될 때까지 할당하지 않을 것입니다. –
또 다른 옵션은'QuadMesh'가 아무 것도하지 않는 기본 생성자를 가질 수 있고, 준비가되면 그것을 설정하기 위해 호출하는 함수입니다. –