Questions tagged «forward-declaration»

前向声明允许静态类型的程序指示符号的类型和名称,而无需实际定义它。



8
什么是C ++中的前向声明?
网址:http://www.learncpp.com/cpp-tutorial/19-header-files/ 提到以下内容: add.cpp: int add(int x, int y) { return x + y; } main.cpp: #include <iostream> int add(int x, int y); // forward declaration using function prototype int main() { using namespace std; cout << "The sum of 3 and 4 is " << add(3, 4) << endl; return …

9
接收者类型***例如消息是转发声明
在我的iOS5应用中,我有NSObject States课,然后尝试初始化它: states = [states init]; 这是init方法States: - (id) init { if ((self = [super init])) { pickedGlasses = 0; } return self; } 但是行中有错误 states = [states init]; 例如,消息的接收方类型“状态”为前向声明 这是什么意思?我究竟做错了什么?

7
C ++中嵌套类型/类的前向声明
我最近陷入这样的情况: class A { public: typedef struct/class {...} B; ... C::D *someField; } class C { public: typedef struct/class {...} D; ... A::B *someField; } 通常,您可以声明一个类名: class A; 但是您不能向前声明嵌套类型,这会导致编译错误。 class C::D; 有任何想法吗?

15
是否可以在Python中向前声明一个函数?
是否可以在Python中向前声明一个函数?我想cmp在声明之前使用自己的函数对列表进行排序。 print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)]) 我已经组织了代码,以cmp_configs在调用之后放置方法的定义。它因以下错误而失败: NameError: name 'cmp_configs' is not defined 有没有办法cmp_configs在使用之前“声明” 方法?这会使我的代码看起来更干净吗? 我认为有些人很想告诉我,我应该重新组织我的代码,以免出现此问题。但是,在某些情况下这可能是不可避免的,例如在实施某种形式的递归时。如果您不喜欢此示例,请假设我有一种情况确实需要转发声明一个函数。 考虑以下情况,在Python中有必要向前声明一个函数: def spam(): if end_condition(): return end_result() else: return eggs() def eggs(): if end_condition(): return end_result() else: return spam() 凡end_condition与end_result先前已经被定义。 是唯一的组织代码并始终在调用之前放置定义的解决方案吗?

3
如何转发声明C ++模板类?
给定一个类似下面的模板类: template<typename Type, typename IDType=typename Type::IDType> class Mappings { public: ... Type valueFor(const IDType& id) { // return value } ... }; 有人如何在头文件中转发声明此类?

2
在Bash或Shell脚本中转​​发函数声明?
例如bash,在C / C ++中是否存在这样的东西,或者至少有类似(替代方法)的东西,例如正向声明? 还是有这样的事情,例如因为它总是一次执行(一行接一行)? 如果没有前向声明,我应该怎么做才能使脚本更易于阅读。时间太长,这些函数定义在开始时就与全局变量混合在一起,使我的脚本看起来难看并且难以阅读/理解。我要求学习一些针对此类情况的知名/最佳做法。 例如: # something like forward declaration function func # execution of the function func # definition of func function func { echo 123 }

9
应该尽可能使用前向声明而不是包含吗?
每当一个类声明仅将另一个类用作指针时,使用一个类正向声明而不是包括头文件是否有意义,以抢先避免循环依赖问题?因此,与其具有: //file C.h #include "A.h" #include "B.h" class C{ A* a; B b; ... }; 改为这样做: //file C.h #include "B.h" class A; class C{ A* a; B b; ... }; //file C.cpp #include "C.h" #include "A.h" ... 有什么理由不这样做吗?


5
在C ++中,是否可以将一个类声明为继承自另一个类?
我知道我可以做到: class Foo; 但是我可以将一个类声明为继承自另一个类吗,例如: class Bar {}; class Foo: public Bar; 用例示例是协变引用返回类型。 // somewhere.h class RA {} class RB : public RA {} ...然后在另一个不包含某处的标头中 // other.h class RA; class A { public: virtual RA* Foo(); // this only needs the forward deceleration } class RB : public RA; // invalid …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.