我是做结构的新手,所以如果这是一个愚蠢的问题,请多多包涵。我有一个头文件和四个包含它的 .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.
如果我尝试移动它,这个结构似乎很奇怪,因为如果它在标题中,它会被包含三次,并且由于“多重定义”而不会运行。如果我将它放在我的三个非主 cpp 文件之一中,那么该结构似乎无法工作,因为其中一些必须在 main() 中定义。所以现在它在我的主 cpp 文件中,但我有使用这些值的函数,这些函数在我的非主 cpp 文件中,据我所知,这些文件在主文件之前编译。为了解决这个问题,我将结构声明放在标题中,并将定义放在我的 main 中(我可能用词错误)然后我说'好的,运行函数'CheckItTwice'。
//MAIN
Soccer.DeadLine=6;
//and so on for all six, like before.
//ok, NOW run the fx.
CheckItTwice(Soccer.Deadline, Soccer.nameIt);
这里的问题是,如果我告诉 CheckItTwice 说,cout 字符串或 int,它会运行程序而不会出错,但不会在 cout 应该在的控制台中返回任何内容,因为显然它们还没有被定义,因为就功能而言。为什么会这样/你知道解决这个问题的方法吗?