【发布时间】:2020-06-18 16:49:03
【问题描述】:
我有三个函数将在项目的不同类中使用。这些函数使用(仅读取)公共变量,但以不同的方式操作输入数据。
我不确定如何包装这些函数。我实际上不希望用户可以使用常见的只读变量。我想出了两个解决方案:
- 仅 C 样式标头方法。此解决方案允许用户查看 var0 和 var1。这是我不想要的。 (命名空间方法也不能隐藏只读变量 AFAIK。)
#ifndef FUNC_H
#define FUNC_H
const int var0 = 30;
const int var1 = 75;
void func0(float input0)
{//manipulate input0//}
void func1(float input1)
{//manipulate input1//}
void func2(float input2)
{//manipulate input//}
#endif //FUNC_H
- 类方法
#ifndef FUNC_H
#define FUNC_H
class Func
{
public:
static void func0(float input0);
static void func1(float input1);
static void func2(float input2);
private:
Func();
static const int var0 = 30;
static const int var1 = 75;
};
void Func::func0(float input0){}
void Func::func1(float input1){}
void Func::func2(float input2){}
#endif //FUNC_H
这可行,但我不确定这是否是实现我想要的正确方法。基本上,我想将它们包装成类似于 STL 库。你有什么推荐的?
【问题讨论】:
标签: c++ c++11 shared-libraries c++17 static-libraries