23得票3回答
`def`和`declare`用于前向声明,它们有什么区别?

Clojure中有一个declare宏,允许您前置声明函数或变量。它似乎与 def 宏完全相同: (declare x) 和 (def x) 都创建了 #<Unbound Unbound: #'user/x> 什么情况下应该使用 (declare x) 而不是 (def x)?

22得票2回答
为什么Google样式指南不鼓励前向声明?

不是说Google Style Guide就是圣经,但作为一个新手程序员,它似乎是个不错的参考。 Google Style Guide列出了以下前向声明的缺点: 前向声明可能会隐藏依赖性,使用户代码在头文件更改时可以跳过必要的重新编译。 库的后续更改可能会破坏前向声明。函数和模板的前向声...

22得票3回答
内联函数的前向声明

我有一个头文件,其中包含大量(30+)的内联函数。 为了避免读者滚动或搜索内联函数的定义(实现),我想要一个“前向声明”部分,该部分陈述了带有注释的函数声明。 这个部分可以让读者找到如何使用函数或查找函数,而不必向下滚动到实现部分。 此外,我希望读者习惯于使用函数,而不必看到它们的实现。...

21得票1回答
Django模型:两个类之间的相互引用和在Python中无法使用前向声明

我定义了两个模型,每个模型都引用另一个模型,如下所示:class User(models.Model): # ... loves = models.ManyToManyField(Article, related_name='loved_by') class Article(...

21得票2回答
无法使用std::unique_ptr<T>,其中T是前向声明

首先,我知道unique_ptr&lt;>和前向声明的一般问题,比如Forward declaration with unique_ptr?。 考虑下面这三个文件: A.h#include &lt;memory&gt; #include &lt;vector&gt; class B; ...

21得票3回答
"using namespace" 究竟是做什么的?

以下 C++ 测试代码无法链接(gcc 4.9.2,binutils 2.25)。错误为In function 'main': undefined reference to 'X::test'。 01: #include &lt;string&gt; 02: #include &lt;ios...

21得票3回答
在命名空间中有更短的前向声明类的方式吗?

我可以通过以下方式在命名空间中前向声明一个函数:void myNamespace::doThing(); 等同于:namespace myNamespace { void doThing(); } 在命名空间中前向声明一个类:namespace myNamespace { class ...

21得票4回答
在C语言中,可以使用前向声明来声明枚举类型(不适用于C++)。

在C中,对枚举的前向声明对我来说不起作用。 我在互联网和Stack Overflow上搜索过,但是关于枚举的前向声明的问题都是关于C++的。在C中,你怎么声明枚举? 将它们放在每个文件的顶部(或者头文件中),这样文件中的所有函数都可以访问它们?

21得票4回答
如何在另一个类中使用前置声明一个类的成员函数?

我创建了两个完全相同的类 X 和 Y,并在它们之间互相使用指针。下面是 X.h 的代码,Y.h 与所有 X 和 Y 互换。然而,在我的 Connect 方法中出现了一个错误(错误 C2027:使用未定义的类型“Y”)。在 X.h 中,我已经前向声明了类 Y,但它不知道 Y 有一个名为 SetX...

21得票1回答
前置声明枚举类不起作用

在 State.h 文件中,我有以下内容:enum class StateID : unsigned int; 在 State.cpp 文件中我有如下代码:enum class StateID : unsigned int { NullID = 0, MainMenuID, ...