문제
다음과 같은 수업이있는 경우 :
typedef union { __m128 quad; float numbers[4]; } Data
class foo
{
public:
foo() : m_Data() {}
Data m_Data;
};
그리고 다음과 같은 수업 :
class bar
{
public:
bar() : m_Data() {}
foo m_Data;
}
BAR 인스턴스를 만들 때 Foo의 생성자가 호출됩니까?
내가 사용하려고 할 때 bar
'에스 m_Data
'에스 quad
안에 bar
값이 있지만 초기화되지 않은 것 같습니다. numbers[4]
. :\
구체적으로, 이것은 충돌이 발생합니다.
m_Data.quad = _mm_mul_ps(m_Data.quad, a_Other.m_Data.quad)
모든 도움이 감사하겠습니다. :)
해결책
당신은 당신의 생성자를 선언해야합니다 public
, 그렇지 않으면, 당신은 당신이 그것을 private
회원.
다른 팁
나에게 좋아 보인다. FOO 및 BAR은 생성자가 있기 때문에 POD 유형이 아니므로 구성 후 구성원이 초기화 될 수 있습니다.
나중에 메모리 누출을 통해 데이터가 덮어 쓰기일까요?
막대 인스턴스를 어떻게 만드나요?
제휴하지 않습니다 StackOverflow