ライブラリ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で宣言時に初期化できるようになりましたが
どちらで初期化または今のまま両方で初期化すればいいか分からず困っています。
どなたか教えて下さい。出来れば理由も含めてお願いします。
あと私はメンバイニシャライズで初期化していますが
メンバイニシャライズで初期化するのとコンストラクタで初期化するのの利点欠点がいまいち
理解できていないのでそこもこれを機に知っておきたいのでわかる方教えて下さい。
よろしくお願いいたします。
C++ の初期化について教えて下さい
Re: C++ の初期化について教えて下さい
ルールの一読をお願い致します。。
ルールのテンプレートです。(皆さんこういう感じに書かれています)
[1] 質問文
[1.1] 自分が今行いたい事は何か
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
[1.4] 今何がわからないのか、知りたいのか
[2] 環境
[2.1] OS : Windows, Linux等々
[2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
[3] その他
・どの程度C言語を理解しているか
・ライブラリを使っている場合は何を使っているか
-----------------------------------------------------------
例はビルドエラーになりました。具体的に動くコードで2種類の例を提示してください。それに色々ググってもヒットしません。
ルールのテンプレートです。(皆さんこういう感じに書かれています)
[1] 質問文
[1.1] 自分が今行いたい事は何か
[1.2] どのように取り組んだか(プログラムコードがある場合記載)
[1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
[1.4] 今何がわからないのか、知りたいのか
[2] 環境
[2.1] OS : Windows, Linux等々
[2.2] コンパイラ名 : VC++ 2008EE, Borand C++, gcc等々
[3] その他
・どの程度C言語を理解しているか
・ライブラリを使っている場合は何を使っているか
-----------------------------------------------------------
例はビルドエラーになりました。具体的に動くコードで2種類の例を提示してください。それに色々ググってもヒットしません。
Re: C++ の初期化について教えて下さい
[1] 質問文
[1.1] C++での正しい初期化方法を理由込みで知りたいです。
[1.2] 現在しているコード(初期化)は上に載せています。
[1.3] エラーとかではないです。
[1.4]C++での正しい初期化方法を理由込みで知りたいです。
[2] 環境
[2.1] OS : Windows
[3] その他
・C++は初心者です。
・DXLIBを使っています
[1.1] C++での正しい初期化方法を理由込みで知りたいです。
[1.2] 現在しているコード(初期化)は上に載せています。
[1.3] エラーとかではないです。
[1.4]C++での正しい初期化方法を理由込みで知りたいです。
[2] 環境
[2.1] OS : Windows
[3] その他
・C++は初心者です。
・DXLIBを使っています
Re: C++ の初期化について教えて下さい
質問者さんにお願いがあります。2種類の比較ができるようコードを提示ください。
それと album ボタンの上のコードボタンをおしてcodeで囲んでください。
コードにエントリーポイント”WinMain"がないのはなぜでしょうか?
また”動いた画像”をはってください。
それと album ボタンの上のコードボタンをおしてcodeで囲んでください。
コードにエントリーポイント”WinMain"がないのはなぜでしょうか?
また”動いた画像”をはってください。
- tk-xleader
- 記事: 158
- 登録日時: 13年前
- 連絡を取る:
Re: C++ の初期化について教えて下さい
コンストラクタ初期化子と宣言に続く初期化子を比較すると、
コンストラクタ初期化子
利点:コンストラクタの引数を使ってデータメンバを初期化することができます。
欠点:データメンバを初期化することを忘れる可能性があります。
宣言に続く初期化子
利点:直感的で、複数のコンストラクタで初期化を共通できます。
欠点:当然ながら、コンストラクタの引数は使えません。ただし、宣言に続く初期化子があるデータメンバについてもコンストラクタ初期化が使えるため、大した欠点ではありません。
コンストラクタ初期化子
利点:コンストラクタの引数を使ってデータメンバを初期化することができます。
欠点:データメンバを初期化することを忘れる可能性があります。
宣言に続く初期化子
利点:直感的で、複数のコンストラクタで初期化を共通できます。
欠点:当然ながら、コンストラクタの引数は使えません。ただし、宣言に続く初期化子があるデータメンバについてもコンストラクタ初期化が使えるため、大した欠点ではありません。
Re: C++ の初期化について教えて下さい
メンバイニシャライザについてはここを
http://www.g-ishihara.com/cpp_cd_01.htm
コンストラクタでのメンバの初期化についてはここを
http://www.g-ishihara.com/cpp_cd_02.htm
ご覧ください。
http://www.g-ishihara.com/cpp_cd_01.htm
コンストラクタでのメンバの初期化についてはここを
http://www.g-ishihara.com/cpp_cd_02.htm
ご覧ください。
Re: C++ の初期化について教えて下さい
オフトピック
イニシャライザリストのような新しい書き方の欠点(?)といえば…
コードを他者に渡した際に,渡した先の環境や人が対応していないということが度々あること…とか.
コードを他者に渡した際に,渡した先の環境や人が対応していないということが度々あること…とか.