私は構造体を作るのが初めてなので、これがばかげた質問であることが判明した場合はご容赦ください。1 つのヘッダー ファイルと 4 つの .cpp ファイルがあり、すべてにそれが含まれています。ToDoLista という構造体があり、文字列 nameIt と int DeadLine があります。それから、Soccer や DropOffMax など、型名がわからないものがあります。
ToDoLista Soccer, DropOffMax, CookDinner;
Soccer.DeadLine=6;
Soccer.nameIt="SOCCER";
//and so on, for a total of six, 3 ints and 3 strings definitions.
この構造体は、移動しようとすると厄介なようです。ヘッダーにある場合、3回含まれており、「複数定義」のために実行されないためです。3 つのメイン以外の cpp ファイルの 1 つに配置すると、構造体の一部を main() で定義する必要があるため、構造体が機能しないようです。今はメインのcppファイルにありますが、これらの値を使用する関数があり、それらの関数はメイン以外のcppファイルにあり、私が知る限り、メインのcppファイルの前にコンパイルされます。それを回避するために、構造体宣言をヘッダーに入れ、定義をメインに入れます (言い方が間違っているかもしれません)。
//MAIN
Soccer.DeadLine=6;
//and so on for all six, like before.
//ok, NOW run the fx.
CheckItTwice(Soccer.Deadline, Soccer.nameIt);
ここでの問題は、CheckItTwice に文字列または int を計算するように指示すると、プログラムはエラーなしで実行されますが、明らかにそれらがまだ定義されていないため、cout があるはずのコンソールに何も返されないことです。機能に関する限り。これはなぜですか / これを回避する方法を知っていますか?