gzip是一种压缩/解压缩算法(无损), 可以针对字符串/二进制流/文件等, 看了下源码, 利用到了基础的zlib库, 具体代码也就百来行, 可以参考tc_gzip.h/tc_gzip.cpp. 在tc_gzip.h中, 可以看到C++的类中类定义。 来写个简单的demo看下:
#include <iostream>
using namespace std;
struct B
{
struct A
{
int x;
void print()
{
cout << x << endl;
}
};
A objA;
void print()
{
cout << objA.x << endl;
}
};
int main()
{
B objB;
objB.objA.x = 100;
objB.print(); // 100
return 0;
}
我们知道, C++中的函数中, 不能再有函数的定义, 那思考一下, 为什么上述代码要采用类中类的定义方式? 其实, 这就是“最小暴露原则”。 同理, 在namespace中也可以嵌套namespace, 很常见。