私のプロジェクトには、io.cpp で定義された関数「PrintHeader」があります。メインファイルに io.h が含まれていても、エラーが発生します
error C3861: 'PrintHeader': identifier not found.
PrintHeader の関数をメイン ファイルにコピーすると、エラーが発生します。
error LNK2005: 'void _cdeci PrintHeader(void)" (?PrintHeader@@YAXXZ) already defined in io.obj.
と
error LNK1169: one or more multiply defined symbols found.
2 番目のエラー セットは 2 回定義しているので理解できますが、重複した定義を削除しただけでは機能しない理由がわかりません。どんな助けでも大歓迎です。
メインファイル
#include "stdio.h"
#include <iostream>
#include "io.h"
void PrintHeader()
{
cout << endl;
cout << "Month\tPrincipal\t Interest\t Balance" << endl;
cout << "-----\t---------\t---------\t---------" << endl;
}
int main()
{
cout << "Hello World\n";
PrintHeader();
getchar();
return 0;
}
io.cpp
#include <iostream>
#include <iomanip>
#include "io.h"
void PrintHeader (void)
{
cout << endl;
cout << "Month\tPrincipal\t Interest\t Balance" << endl;
cout << "-----\t---------\t---------\t---------" << endl;
}
io.h
#ifndef __IO_H__
#define __IO_H__
#include <string>
using namespace std;
void PrintHeader (void);
#endif