gpt4 book ai didi

c++ - 这是设计缺陷吗?

转载 作者:太空宇宙 更新时间:2023-11-04 14:35:29 24 4
gpt4 key购买 nike

考虑两个类

class A{
public:
A(){
}
~A(){
}
};


class AImpl : public A{
public:
AImpl(){
a = new AInternal();
}
AImpl(AInternal *a){
this->_a = a;
}
~AImpl(){
if(a){
delete a;
a = null;
}
}
private:
AInternal *a;
};

我试图隐藏AInternal 的 实现并仅公开A 的 接口(interface)。我在这里看到两件事

  1. A 类完全是空的。
  2. 隐藏基本上是通过继承来实现的。实际上,我必须使用从 A 到 AImpl 的向下转型和向上转型,反之亦然。

这样的设计好吗?设计经验不足,看不出其中的隐患和不好的地方?

最佳答案

您使用 3 个类会使事情过于复杂。我想你要找的是 pimpl idiom .

关于c++ - 这是设计缺陷吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1717023/

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