通知
すべてクリア
Topic starter
2003年6月6日 9:11 PM
超初心者でVC++を始めたばかりなんですが
例えばクラス名がProductでstatic int stock;などと宣言すると
「外部シンボル "private: static int Product::Stock (?Stock@Product@@0HA) は
未解決です」
「外部参照 1 が未解決です」
という二つのエラーが出てしまうのですがどうすればいいのでしょうか。
こういう経験はありませんか?
2003年6月6日 9:58 PM
こういうことですか?
class Product
{
public:
static int stock;
};
こういう場合は、これとは別に、
int Product::stock = 0;
などのように宣言せねばなりません。
Topic starter
2003年6月6日 10:21 PM
シャノンさんありがとうございます。
しかし以前のエラーは消えたのですが新たに
「'Stock' : 関数でない識別子が純粋関数であると指定されています。」
というエラーが出てしまいました。
宣言場所はstatic int stock;の後でいいですよね
Topic starter
2003年6月6日 11:30 PM
すいません 解決しました
2003年6月9日 1:01 PM
>宣言場所はstatic int stock;の後でいいですよね
ヘッダファイル内で宣言するとそのファイルをインクルードするたびに
定義されてしまいリンクエラーになると思います。
ので、hoge.hで
class hoge
{
static int a;
.
.
};
としてhoge.cppの先頭で
int hoge::a = 0;
としてやります。
#すでにそうしてたら無視してください。