変数の初期化

[戻る]
出直し三平 2003/02/14(金) 10:22:15
ヘッダで宣言した変数の初期化(int)は普通どこでやるのでしょうか?
ヘッダ部で宣言し、初期化するとコンパイルエラーになるし、
グローバル変数にするしかないのでしょうか?

ちなみにこの変数はクラス内ですが、あらゆる部分で参照しています。

REE 2003/02/14(金) 10:30:01
クラスのメンバ変数の初期化の方法が知りたいということでしょうか?

通常、クラスのメンバ変数の初期化は、コンストラクタで行います。
というか、コントラクタはそのための関数です。

コンストラクタが何かをご存知ないのでしたら、
クラスについて勉強しなおすことをお勧めします。

επιστημη 2003/02/14(金) 10:30:32
その変数が:
[1] インスタンス毎に存在するのならコンストラクタで。
[2] 唯一ひとつだけならstaticメンバ初期化で。

--- foo.h ---
class Foo {
  int instance_val; // [1]
  static int class_val; // [2]
public:
  Foo();
  ...
};

--- foo.cpp ---
#include "foo.h"

Foo::Foo() : instance_val(1) {} // [1]

int Foo::class_val = 2; // [2]

出直し三平 2003/02/14(金) 10:53:52
[[解決]]
おっしゃるとおりです。
質問した後気付きました。

勉強して出直します。

古いスレッドには追加発言できません。