私有数据类与成员变量

Private Data Class vs Member Variables

本文关键字:成员 变量 数据      更新时间:2023-10-16

在我工作的地方,有两种不同的编码风格:

  1. 一些程序员会在他们正在工作的类中创建一个类,并将成员数据变量存储在那里。

  2. 其他人在类中声明成员变量并将其标记为私有。

我很好奇哪个更好,假设一个更好。 另外,创建私有课程给您带来什么好处? 这只是老派与新派的事情吗?

例如:

class CPOMSCTE104DeviceCOMHandler
{
public:
    //Stuff
private:
    class CPrivateData;
    std::auto_ptr<CPrivateData> m_cPrivateData; //All member variables go in here
    friend class CPrivateData;
}

谢谢!

这种具有嵌套私有类的模式称为 PIMPL 习语

https://anteru.net/2009/03/14/385/

它被广泛用于增加构建时间,并从头文件中删除实现细节,以增加内存分配的成本。