【初心者歓迎】C/C++室 Ver.55【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0058デフォルトの名無しさん
2008/06/16(月) 16:11:09ヘッダで宣言したメンバ関数を.ccで実装するとき、いくつかの関数でmultiple definitionと言われてコンパイルできません。
インクルードガードはもちろんかけています。例えば、
[foo.h]
#ifndef _FOO_H_
#define _FOO_H_
class foo{
private:
int a,b,c;
pulic
int getA();
int getB();
int getC();
}
#endif
[foo.cc]
#include "foo.h"
int foo::getA(){return a;}
int foo::getB(){return b;}
int foo::getC(){return c;}
とかなっているときに、getAはOKなのにgetBとgetCのみmultiple definitionと言われるような状況です。
他にも、引数なしのコンストラクタはOKなのに、引数付きでオーバーロードしたコンストラクタのみ
mutiple definitonと言われたりします。
これらの現象は全て、問題の関数実装時にinline宣言すると消えます。これはどういう問題なのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています