gpt4 book ai didi

c++ - OOPS 设计模式,以避免对大小变化的二进制依赖

转载 作者:太空狗 更新时间:2023-10-29 21:00:50 24 4
gpt4 key购买 nike

示例

class A
{
public:
int i;
}; // A.h and defined in project libA.vcxproj (libA.dll)

现在我在多个项目的多个地方使用 A 类,如下所示。大约 100 个项目。

#include "A.h"
class UseA
{
public:
A *a;
UseA(){
a = new A();
}
~UseA() {delete a;}
}

我的问题是,每当我向类 A 添加一个成员变量时,我都必须构建所有项目 (~100),因为类 A 的大小已更改,构建 100 个项目非常耗时。

我想知道是否有一种设计模式可以避免在单个类的大小变化时构建如此多的项目。我还有很多类,比如在 libA.vcxproj 中定义的 A 类。

最佳答案

您可以使用 pimpl idiom成语。有点像

class A
{
public:
A();
~A();
int get() const;
private:
class impl;
std::unique_ptr<impl> impl_;
};

// in a.cpp

class A::impl
{
public:
int i;
};

A::A() : impl_(new impl())
{
}

A::~A() {}

int A::get() const { return impl_->i; }

关于c++ - OOPS 设计模式,以避免对大小变化的二进制依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com