我正在使用一个外部库,它将提供一个类,比如library_class_1,它将像往常一样接受一些输入和返回输出。我希望能够在头文件中访问这些输出,以便在另一个类中使用此信息。 我将此信息传递到单独的头文件时遇到问题。我会发布一个关于脚本的想法,因为它太大了,并且包含了很多关于这个问题的其他非相关信息。
#include header.h
int main {
...
library_class_1 object_1;
header object_2;
object_2.DoSomething(...) // how to input object_1 correctly?
}
class header {
public:
header();
void DoSomething( ); // How can I pass object_1 in here?
}
#include header.h
header::header() {...}
header::DoSomething( ) // How can I pass object_1 in here?
{
// Here, I want to be able to access member functions of
// object_1
}
如果我宣布
header::DoSomething(library_class_1 & object_1);
void DoSomething(library_class_1 & object_1);
我收到错误:还没有声明library_class_1(在" header.h"中)
我相信我必须以某种方式在" header.h"中声明此功能,但我无法这样做。我尝试过定义
class library_class_1;
// or library_class_1 object_1;
在" header.h"中,没有成功。
无论如何,请不要介意格式化/实现错误,因为我只是想知道这个问题。我希望我能正确解释我的问题。
答案 0 :(得分:0)
在使用之前在header.h中添加library_class_1
的前向声明。
class library_class_1;
class header {
public:
header();
void DoSomething(library_class_1 const& object_1);
}
确保{header}中的#include
.h文件定义library_class_1
。
#include <librarry_class_1.h>
void header::DoSomething(library_class_1 & object_1)
{
// Use object_1 ...
}