C++難しすぎワロタwww
■ このスレッドは過去ログ倉庫に格納されています
ヘッダーで定義した変数ってコンストラクタで初期化するのはわかったんだがコンストラクタ内で直接初期化しないとまずい?
用意したsetterを呼んで間接的に初期化するのはダメ? そもそもコンストラクタで初期化しなきゃならない変数にセッター用意する必要性 それは初期化ではなく代入だ
class A
{
public:
A(int x, int y)
{
x = x;
y = y;
}
}
こういうの他の言語では初期化って言われるけどC++では代入だからその違いをちゃんと把握しているなら好きにすればいい >>5
???
C++のコンストラクタを用いた初期化はこうだぞ
C++知らんならレスしない方がいいぞ
class A
{
public:
A(int x, int y) : x(x), y(y)
{
}
int x;
int y;
} >>2
DBから取ってきた値を格納して画面表示するモデルクラスなんだが、画面から値変更があるからsetterを用意してる
モデルのインスタンス生成の方が先だから初期化されてない値が参照されることはまずないんだが、念のためコンストラクタ内で初期化しようと思って… x=a; ←代入
int x=a; ←初期化付き宣言 >>7
あー、そういうことね
うっかりしてたわ
確かにこれだな >>8
コンストラクタ内で初期化しとかないとsetterを使った間接的な初期化(実際には代入)がされるまで無駄にデフォルト値が入っちゃうからちゃんと初期化するべき >>11
ありがとう
マジで助かった
必ず初期化するようにする ■ このスレッドは過去ログ倉庫に格納されています