c++ - 在不使用 #include 的情况下使用另一个类中的函数

标签 c++ class include

在其中一个类中,我需要使用另一个类中的函数一次。我想知道是否有另一种方法可以在不使用页面顶部的 #include "OtherFunction.h"的情况下调用该类。我以为我可以改用 OtherFunction::,但是当我这样做时,eclipse 给我一个错误。有没有另一种方法可以从另一个类调用此函数而不使用#include 或添加额外的继承开销?

这些类不是静态的。我正在编写单元测试,当我在我的驱动程序类中测试调用我的支持类的函数时,我遇到了重新声明错误。所以我试图找到一个解决方案,我可以在其中测试支持类和驱动程序类中的函数。

我所有的类(class)都被包围着

#ifndef SHAREDSCANNINGFUNCTIONS_H_
#define SHAREDSCANNINGFUNCTIONS_H_

#endif 

原来内联函数需要在#endif 之前。每天学些新东西。感谢所有帮助过的人

最佳答案

不,这不可能。 你为什么要那样做?编写#include 的成本是多少?

更准确地说,如果您不告诉文件在哪里找到它,您的文件如何知道您的类定义?

编辑: @Gonmator 一个人不应该这样做,这是不好的。在 cpp 文件中定义类是很糟糕的。 唯一可以做的是当这个类只被这个文件使用时。那么应该是静态的

编辑2: 好吧,我不知道如何将代码放在评论中。 Se,我的意思是:

#ifndef __YOURFILENAME_H__
#define __YOURFILENAME_H__
class myclass{}
#endif

看起来您遇到了这样的问题:

//classA.hh
class A{
  B instanceofB;
}

//classB.hh
class B{
  A instanceofA;
}

这样做会产生一些问题。编译器说“错误:使用了不完整的废话......”

您所要做的就是在类定义的顶部添加类名,如下所示:

//classA.hh
class B;
class A{
  B instanceofb;
}

//classB.hh
class A;
class B{
  A instanceofA;
}

编辑3: 看起来我不明白这个问题。但我的答案毕竟还是对的。

关于c++ - 在不使用 #include 的情况下使用另一个类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247646/

相关文章:

c++ - C/C++,你能把一个文件#include 到一个字符串文字中吗?

html - 在 html 文件中包含 html 文件

c++ - 父类持有子类 C++ 的静态实例

c++ - 动态 Actor 在这里合适吗?

java - Android - 如何声明 'this' 的变量?

python - 如何保护 python 类变量免受邪恶程序员的侵害?

Laravel 5.6 Tinker Class '...' 在 Psy Shell 代码第 1 行中找不到

jsp - Tiles vs. JSP包括

c++ - 以编程方式转换 WAV

c++ - 以编程方式调用 "Save to PDF..."工作表