问题标签 [forward-declaration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9038 浏览

javascript - 为什么我不能在 try 块中定义之前使用 Javascript 函数?

正如这里所讨论的,函数定义可以在定义之前使用。但是,一旦将一段代码包装在 try 块中,情况就不再如此了。

这将显示“Hello world”:

但这会显示“ReferenceError: hello is not defined”:

因此,在函数声明方面,try 块显然有一些“特殊”之处。有没有办法解决这种行为?

0 投票
2 回答
425 浏览

c++ - 如何打破这个循环 typedef?

我想声明几种类型(在模板化的类内部KV提供一些缓存行为):

当然,这是不可能的,因为循环定义。我可以用 破解它void*,但我想知道是否有一些前向声明魔法或其他技术可以更好地完成这项工作。

(是的,我知道boost::bimap会回避这个问题)。

0 投票
4 回答
448 浏览

c - 前向 typedef 结构

我的头文件中有这个。

端口.h

在我的实现文件中,我有这个:

端口.c

在我的 driver.h 文件中,我有以下内容:

我已经提前声明了结构,因为我想隐藏内部元素。

但是,我在头文件中的 initialize_ports 上收到以下错误:

我只是想知道如何转发声明并能够将结构作为参数传递?

非常感谢您的任何建议,

0 投票
3 回答
43014 浏览

c++ - C++前向声明错误

我有一个像这样的错误

走廊和水平是...

据我所知,指针正在设置,但是当我尝试从 Level 访问函数时,BOOM!

谢谢。

PS:如果有区别的话,编译器是 gcc 2.95.2。

编辑

更新了完整的代码。

0 投票
4 回答
2239 浏览

c++ - STL 容器的前向标头

如果我只需要流的指针或引用,标头<iostream>有一个伴侣就足够了。<iosfwd>后者是重载时的常见情况operator<<

STL 容器有这样的标题吗?我想定义几个引用 STL 容器的函数,我不想包含<vector>, <list>, <set>et。人。完整的,这样我就可以引用这些类型。这个问题是否有标准、增强或其他解决方案?

0 投票
2 回答
1018 浏览

c++ - 使用 new 关键字前向声明和类型名

我在下面的类a中收到一个错误,声明了一个b类型的新指针。请帮忙。

0 投票
4 回答
548 浏览

c++ - 如何解决 Boost::BGL 模板<->类循环依赖?

我在使用 Boost 图形库的邻接列表时遇到问题。这似乎是一个循环依赖问题:我有一个模板的 typedef T,它使用了某个类 A。另外,A 存储了一个指向 T 类型对象的指针。现在编译器告诉我,T 没有命名一个类型。

以下是我更具体的文件的摘录:

如何解决这个依赖/包含顺序问题?

另一个编辑:我只是想到 edge_descriptor 的类型可能是像 int 这样的原始类型。这将解决问题,因为我可以用普通的 int 变量替换 Lane 的 edge_descriptors,因此可以删除 tie.hpp 中包含的 graphdefinitions.hpp。不幸的是,我的想法很糟糕,我必须找到另一个解决方案。Edge_descriptor 类型似乎是有原因的......

0 投票
3 回答
20678 浏览

c++ - 是什么标题?

<iosfwd>标头是做什么用的?为什么有必要?

有什么例子吗?

0 投票
3 回答
16688 浏览

c++ - 删除不完整类型的对象

这让我想到:

delete p如果我们甚至不知道是否X有可见的析构函数,我们怎么可能呢?g++ 4.5.1 给出三个警告:

然后它说:

注意:析构函数和特定于类的操作符 delete 都不会被调用,即使它们是在定义类时声明的。

哇...是否需要编译器来像 g++ 那样诊断这种情况?或者它是未定义的行为?

0 投票
1 回答
2637 浏览

c++ - 返回指针的方法,指向另一个头文件中声明的数组对象,

我有点陷入两个相互交织的问题。

  • 首先,我想要一个指向堆上对象的指针数组。(在另一个头文件中声明的对象)

  • 其次,我想让一个方法返回一个指向这些对象之一的指针。

我当前的代码是一些摸索的结果,并且会失败,因为我不能在没有完全声明的情况下使用“bar”作为返回类型。但我看不出还有什么办法可以解决这个问题。我试图让“getBar”成为一个指向函数的指针,但是我不知道如何让它访问 **barArray 而不是成员方法。

任何帮助将不胜感激:D

我的代码:

foo.h

foo.cpp

酒吧.h