我可以将该类设为私有,并将其写入公共类。那么没有其他子系统可以访问它。 如何以不必在同一公共类中编写的方式创建它。
答案 0 :(得分:4)
在C ++中,类型级别没有访问说明符的概念。您可以通过两种方式实现保持类私有:
答案 1 :(得分:3)
您可以将其放在单独的.cpp文件中,并且不为其指定头文件。这样做的结果是您无法从其他C ++代码访问它。
以下是一个例子:
worker.h
#pragma once
class Worker{
//some class definition
};
worker.cpp
#include "worker.h"
class Hidden{
//some class definition
};
//implementation of Worker class which uses Hidden class
some_other_file.cpp
//if you only include the header, the class Hidden does not exist
#include "worker.h"
如何编译?
g++ -c worker.cpp -o worker.o
g++ some_other_file.cpp worker.o -o some_other_file