C++ の初期化について教えて下さい
Posted: 2017年2月10日(金) 20:58
ライブラリDXLIB
VisualStdio2015を使用してます。
私は現在C++でこのように初期化していますが
code
--------A.h--------------------------------------------------------------------------------------------------------
#pragma once
#include "DxLib.h"
class A
{
public:
A::A() : m_a(0), m_b(0.0f), m_v(VGet(0.0f, 0.0f, 0.0f))
{
}
~A();
private:
int m_a = 0;
float m_b = 0.0f;
VECTOR m_v = VGet(0.0f,0.0f,0.0f);
};
--------------------------------------------------------------
-----------A.cpp---------------------------------------------
#include "A.h"
A::~A()
{
}
-----------------------------------------------------------------------------------
/code
VisualStdio2015まではメンバイニシャライズでのみ初期化していました。
VisualStdio2015で宣言時に初期化できるようになりましたが
どちらで初期化または今のまま両方で初期化すればいいか分からず困っています。
どなたか教えて下さい。出来れば理由も含めてお願いします。
あと私はメンバイニシャライズで初期化していますが
メンバイニシャライズで初期化するのとコンストラクタで初期化するのの利点欠点がいまいち
理解できていないのでそこもこれを機に知っておきたいのでわかる方教えて下さい。
よろしくお願いいたします。
VisualStdio2015を使用してます。
私は現在C++でこのように初期化していますが
code
--------A.h--------------------------------------------------------------------------------------------------------
#pragma once
#include "DxLib.h"
class A
{
public:
A::A() : m_a(0), m_b(0.0f), m_v(VGet(0.0f, 0.0f, 0.0f))
{
}
~A();
private:
int m_a = 0;
float m_b = 0.0f;
VECTOR m_v = VGet(0.0f,0.0f,0.0f);
};
--------------------------------------------------------------
-----------A.cpp---------------------------------------------
#include "A.h"
A::~A()
{
}
-----------------------------------------------------------------------------------
/code
VisualStdio2015まではメンバイニシャライズでのみ初期化していました。
VisualStdio2015で宣言時に初期化できるようになりましたが
どちらで初期化または今のまま両方で初期化すればいいか分からず困っています。
どなたか教えて下さい。出来れば理由も含めてお願いします。
あと私はメンバイニシャライズで初期化していますが
メンバイニシャライズで初期化するのとコンストラクタで初期化するのの利点欠点がいまいち
理解できていないのでそこもこれを機に知っておきたいのでわかる方教えて下さい。
よろしくお願いいたします。