0

假设我的“Main.cpp”文件中有一个函数,我需要在类中的实现 .cpp 文件中运行该函数。我该怎么办?

假设我有具有函数 findDate 的 Main.cpp,它需要在我的类中名为 Dates 的函数中调用。包含 Main.cpp 文件的问题是一切都在重新初始化,我似乎无法让 #ifndef 在 Main.cpp 文件中工作。谢谢!

4

2 回答 2

2

您应该在文件 main.h 中声明(但不定义)findDate。然后在需要调用 findDate 的文件顶部包含 .h 文件。

于 2013-09-17T01:22:25.497 回答
1

这是执行此操作的一般程序。

创建一个名为 Main.h 的文件:

#pragma once // Include guard, so you don't include multiple times.

// Declaration (it is okay to have multiple declarations, if they
//              have a corresponding definition somewhere)
date findDate (void);

主要.cpp:

// Definition (it is not okay to have multiple non-static definitions)
date
findDate (void)
{
  // Do some stuff
  return something;
}

日期.cpp

#include "Main.h"

date
Dates::SomeFunction (void)
{
  return ::findDate ();
}

永远不要包含“Main.cpp”,这将创建函数的多个实现和符号findDate (...)(假设函数未声明static),并且链接器将无法确定要链接到哪个输出对象。这称为符号冲突多重定义错误。

于 2013-09-17T01:35:50.233 回答