forward-declaration相关内容

结构转发声明失败编译

我有以下代码,但编译器说sender_wrapper是未定义的,即使我转发声明它。我可以不做一个结构的向前声明吗? (用VS2003编译) struct send_wrapper; struct IPSend { IPSend :: IPSend(const send_wrapper& sender):_sender(sender){} void IPSend :: ..
发布时间:2016-10-23 22:07:22 C/C++开发

向前声明内联函数

我有一个头文件,将包含大量(30+)内联函数。 我不想让读者滚动或搜索内联函数的定义(实现),而是想要一个向前声明它声明具有描述该函数的注释的函数声明。这部分将允许读者找到如何使用一个函数或查找一个函数,而不必向下滚动到实现。 此外,我想读者习惯使用函数,而不必看到它们的实现。 单独函数的forward声明的语法是什么? {这适用于C99和C ++} > FYI,我使 ..
发布时间:2016-10-23 22:07:07 C/C++开发

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

我有一个使用Boost图形库的邻接表的问题。它似乎是一个循环依赖问题: 我有一个模板的typedef T使用一些类A.另外A存储一个指向一个类型T的对象的指针。现在编译器告诉我,T不命名 这里是我更具体文件的例子: // graphdefinitions.hpp #include“lane.hpp” #include“tie.hpp” typedef boost :: ..

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

我有一个使用Boost图形库的邻接表的问题。它似乎是一个循环依赖问题: 我有一个模板的typedef T使用一些类A.另外A存储一个指向一个类型T的对象的指针。现在编译器告诉我,T不命名 这里是我更具体文件的例子: // graphdefinitions.hpp #include“lane.hpp” #include“tie.hpp” typedef boost :: ..

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

我有一个使用Boost图形库的邻接表的问题。它似乎是一个循环依赖问题: 我有一个模板的typedef T使用一些类A.另外A存储一个指向一个类型T的对象的指针。现在编译器告诉我,T不命名 这里是我更具体文件的例子: // graphdefinitions.hpp #include“lane.hpp” #include“tie.hpp” typedef boost :: ..

前向声明和命名空间(c ++)

我的问题: 有两个类,A类和B类,所以我得到A.h和A.cpp和B.h和B.cpp。 A需要知道B和B需要知道A.我解决了以下方式(我不知道为什么它必须这样...) Ah: #include“Bh” A类{... A.cpp: #include“Ah” Bh: #include“Ah” A类; // forward ..
发布时间:2016-10-23 14:09:37 C/C++开发

前瞻性声明的危险是什么?

我刚刚接受采访。我被问什么是“前进声明”。然后我问他们是否是与远期申报相关的危险。 我无法回答第二个问题。在网上搜索没有显示任何有趣的结果。 那么,有人知道与使用前瞻性声明相关的任何危险吗? 解决方案 很好,除了有关重复的问题... ... 如果在指向不完整类型的指针上调用 delete 得到未定义的行为。在实践中,析构函数可能不会被调用。 我们可以看到,在 ..
发布时间:2016-10-23 11:18:54 C/C++开发

向前声明的std :: wstring

//这是一个头文件。 class MyClass; //可以向前声明,因为该函数使用引用。 //但是,我怎么能转发关于std :: wstring的声明? // class std :: wstring;不工作。 VOID Boo(const MyClass& c); VOID Foo(const std :: wstring& s); 解决方案 #i ..
发布时间:2016-10-22 19:03:22 C/C++开发

如何转发声明一个类的成员函数在另一个类中使用?

我已经做了两个相同的类X和Y,带有指向对方的指针。参见下面的代码X.h,Y.h与所有X和Y的互换是相同的。然而,此代码在我的方法Connect中出现错误(错误C2027:使用未定义的类型'Y')。在X.h中,我已经向前声明了类Y,但是它不知道Y有一个名为SetXPointer的方法。因此我还需要转发声明这个方法,正确吗? 如果我尝试这样做(添加行Y :: SetXPointer(X * pX ..
发布时间:2016-10-22 18:41:55 C/C++开发

可以两个类使用C ++看到对方?

所以我有一个类A,在那里我想调用一些类B的功能。所以我包括“b.h”。但是,在B类中,我想调用A类函数。如果我包括“a.h”,它最终在一个无限循环,对吧? 解决方案 每个类(A和B)都应该有一个头文件和一个实现文件。 / p> 每个头文件(例如 Ah )不应包含其他头文件(例如 Bh ),但可以包括对另一个类的前向引用(例如 B类; ),然后可以使用指针和/在其声明中的另一个类(例如 ..
发布时间:2016-10-22 18:08:32 C/C++开发

不完全类型错误

我想让A类成为B类的朋友。 class A { public: void show(const B&); // ## 1 ## but this one work fine B ob; //错误不完整类型 }; class B { public: int b; B():b(1){} friend class A; }; 所 ..
发布时间:2016-10-20 22:31:03 C/C++开发

在C ++中声明之前使用

我想知道为什么C ++的声明使用规则不在类内。 看看这个例子: #ifdef BASE struct Base { #endif struct B; struct A { B * b; A(){b-> foo(); } }; struct B { void foo(){} }; #ifdef BASE }; #endif int m ..
发布时间:2016-10-20 09:20:03 C/C++开发