首页 > 解决方案 > 如何从 C++ 头文件中导出函数

问题描述

我正在我的面向对象编程课上做作业。作业中的许多指令之一是获取一些教师的代码并将其分解为不同的模块/文件。说明如下:

由文件joblist.cpp 和joblist.hpp 组成的joblist 模块应该包含全局变量threshold 和jobs,以及函数firstJobMeetingThreshold、removeJob、addJob、hasJob 和getJob。但是,只有阈值变量和 addJob、hasJob 和 getJob 函数应该从此模块中导出。其余的变量和函数作为助手存在。

我的头文件中有以下代码:

#include <iostream>
#include <vector>
using namespace std;

int threshold;
vector<Job> jobs;

int firstJobMeetingThreshold();
void removeJob(int i);
void addJob(Job job);
bool hasJob();
Job getJob();

(Job 是另一个类的对象,不需要担心)

我对作业感到困惑的部分是如何导出特定功能以及如何制作其他助手。这些功能不应该被移到另一个类或任何东西中,所以我要这样做吗?

如果我的指示不清楚,我很抱歉,我会提供任何需要的澄清。我对 OOP 很陌生,所以我仍在尝试找出很多这些概念。

标签: c++oopexport

解决方案


关于变量,您应该export在声明之前添加要与其他源文件共享的变量。特别是在你的情况下,在你应该有的头文件中

export int threshold;

要限制函数范围,是否要引入命名空间?否则,您可以从头文件中删除辅助函数的声明。如果您执行后者,请确保在第一次需要调用它们之前在源文件中定义它们。


推荐阅读