c++ - 如何制作包含 "Private"?

标签 c++ class header include

有什么方法可以将一个文件包含在一个类中,以便它可以使用它,但不允许包括该类在内的任何东西进入范围才能使用它?为简化起见,假设我在名为 IO 的类中有 iostream header ,我使 IO 能够使用 cout 函数编写内容,但不允许包含 IO 的任何内容能够使用 iostream header 中的任何内容。这不是我想做的,但我需要弄清楚这一点,这样我就不会“双重定义”事情。

最佳答案

是的,您可以,只需将其包含在 cpp 中即可不在h .

// IO.h
// note the lack of #include <iostream>

class IO
{
     // IO stuff...
     void f();
};

然后在cpp :

// IO.cpp
#include "IO.h"
#include <iostream>

IO::void f()
{
    std::cout << "Hello world!" << '\n';
}

当您包含 IO.h 时在其他一些文件中,您不包括 <iostream> , 查看 compilation unit概念。

关于c++ - 如何制作包含 "Private"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333239/

相关文章:

Python类无法通过终端实例化

javascript - PDFMake - 动态 pageMargins 取决于标题的高度

c++ - 静态函数与 const 函数

c++ - 如何将 fftw3 链接到 eclipse mars c++?

c++ - 为什么要在私有(private)继承下覆盖?

C++ 类和访问

c++ - 如何在 QTreeView 中获取所选项目

javascript - 从回调调用方法时如何从方法获取正确的类上下文

c - 在 c 中使用 "extern"命令共享变量

c - 在 header 和源代码中都包含 <stdbool.h> 吗?