c++ - 如何从 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 很陌生,所以我仍在尝试找出很多这些概念。
解决方案
关于变量,您应该export
在声明之前添加要与其他源文件共享的变量。特别是在你的情况下,在你应该有的头文件中
export int threshold;
要限制函数范围,是否要引入命名空间?否则,您可以从头文件中删除辅助函数的声明。如果您执行后者,请确保在第一次需要调用它们之前在源文件中定义它们。
推荐阅读
- postman-collection-runner - 纽曼:运行 URL 收集时出现验证错误
- symfony - Symfony4 JMS\Serializer\SerializedName 将在 deserialize() 上被忽略
- javascript - 已发布的 Expo 应用程序无法拨打网络电话
- azure-devops - ReportGenerator 缺少“代码覆盖率”选项卡(Azure DevOps Server 2019.0.1)
- sql - 存储过程返回 超出最大存储过程、函数、触发器或视图嵌套级别(限制 32)
- tinymce - 在tinymce中单击菜单项后如何保持菜单保持打开状态
- php - 如何在 php5.6.40 或更高版本中切断字符串,当我可以从 $_GET 控制 var 时?
- database - Counting records with some conditions in a table and displaying with a button on a form
- php - laravel 生成正则表达式来验证输入
- azure - 是否有验证导出的 Azure ARM 模板的好方法?