私はヘッダーファイルなどを使用するのは初めてですが、前学期はすべてを1つの巨大な(恐ろしい:p)ファイルで行いました...
私はしてはいけないことをしていますか?プログラムを実行しようとすると、次のような結果になります。
1> LINK : ~~~\CSC 161\Accounting Assignment\Debug\Accounting Assignment.exe not found or not built by the last incremental link; performing full link
1>driver.obj : error LNK2005: "class std::basic_ifstream<char,struct std::char_traits<char> > welcomeFile" (?welcomeFile@@3V?$basic_ifstream@DU?$char_traits@D@std@@@std@@A) already defined in statistics.obj
1>~~~~\CSC 161\Accounting Assignment\Debug\Accounting Assignment.exe : fatal error LNK1169: one or more multiply defined symbols found
1>
統計.h:
#ifndef _STATISTICS_INTERFACE_
#define _STATISTICS_INTERFACE_
...
#include<fstream>
using namespace std;
ifstream welcomeFile; //if I comment this out, it compiles
class Stats
{
...blah...
};
void welcome();
void pause();
void printFile(ifstream &inFile);
#endif
統計.cpp:
#include "statistics.h"
...working functions...
void welcome()
{
system("CLS");
welcomeFile.open("about.txt");
printFile(welcomeFile);
welcomeFile.close();
pause();
}
エラーは、何かが 2 回定義されようとしているように見えますが、#ifndef はそれを設定するはずだったので、まだ定義されていない場合にのみ定義されていると思いましたか? これは、welcomeFile を宣言した唯一の場所です ...