标签: private-header

私人/公共标题示例?

有人可以举个例子说明公共标题和私有标题是如何工作的吗?我已经在网上做了一些阅读,但我似乎找不到有关示例代码的有用信息.我被告知我应该使用私有标头来分隔我的代码的公共和私有部分,以创建静态库.经过一番阅读后,我对它是如何工作有了一个大概的了解,但我真的很感激一个很好的例子让我开始.具体来说,我不太明白的是如何将接口函数放在我的公共头文件中,私有变量/函数放在我的私有头文件中?谢谢!

编辑:

也许我没有正确处理我的问题,但我的意思是,例如,我有myMath.h和myMath.cpp,而myMath.h有:

class myMath{
public:
    void initialise(double _a, double _b);
    double add();
    double subtract();

private:
    double a;
    double b;
};
Run Code Online (Sandbox Code Playgroud)

myMath.cpp具有函数的实现.我怎样才能使myMath.h只有三个公共函数,而私有变量在另一个文件中定义(例如myMath_i.h),这三个文件就是这样我创建静态库之后用户只需要myMath.h.这也意味着myMath.h不能#include myMath_i.h.所以类似于:

myMath.h:

class myMath{
public:
    void initialise(double _a, double _b);
    double add();
    double subtract();
}
Run Code Online (Sandbox Code Playgroud)

和myMath_i.h:

class myMath{
private:
    double a;
    double b;
}
Run Code Online (Sandbox Code Playgroud)

当然那是不可能的,因为那时我将重新定义myMath类......

c++ header private-header

27
推荐指数
2
解决办法
4万
查看次数

什么是C中的"私人标题"?

我最近一直在学习C,在我的一本教科书中,我找到了一个带有".r"扩展名的文件的引用.现在,你可以想象,谷歌搜索"r"或"文件扩展名r"没有效率,所以我想知道你是否可以帮助我.

它出现在以下代码块中

#include "new.r"

static const struct Class _String = {
  sizeof(struct String),
  String_ctor, String_dtor,
  String_clone, String_differ
};

const void * String = & _String;
Run Code Online (Sandbox Code Playgroud)

作者提到它是一个"私人标题",但我希望他能更明确地知道究竟是什么.

c private-header c-preprocessor

11
推荐指数
3
解决办法
6335
查看次数

支持功能声明应该去哪里?

我有一个.cpp源文件,其中包含一些需要公开访问的函数和一些仅在此源文件中使用的支持函数.

我已经将所有这些函数声明放在头文件中,因为我个人觉得查看一个类在一个地方提供的所有内容很有用.但是,我想指出这些函数是否供内部使用,类似于private访问修饰符,但不使用类(它们是独立函数).

一些可能的解决方案:

  • 将私有声明放在源文件中.
  • 将私有声明放在单独的标头中.

这两种解决方案都将公共和私有函数分成了我想避免的单独文件.

c++ header-files private-header

0
推荐指数
1
解决办法
759
查看次数

标签 统计

private-header ×3

c++ ×2

c ×1

c-preprocessor ×1

header ×1

header-files ×1