gpt4 book ai didi

c++ - 这是一个好的代码吗(在阅读同事的代码时遇到的)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:09 24 4
gpt4 key购买 nike

文件a.hpp:

class a;
typedef boost::shared_ptr<a> aPtr

class a{
public:
static aPtr CreateImp();
virtual void Foo() = 0 ;
....
};

文件aImp.hpp:

class aImp : public a{

virtual void Foo();

};

文件aImp.cpp:

aPtr a::CreateImp()
{
return aPtr(new aImp());
}

void aImp::Foo(){}

客户端必须使用CreateImp 获取指向a 的指针,不能使用a 其他方式。您如何看待此实现?您如何看待这种实现方式?

最佳答案

如果 Factory Method 这看起来像一个正常的实现设计模式。 boost::shared_ptr 的返回只是让程序员在内存管理和异常安全方面更容易使用此 API,并防止简单的错误,例如调用函数和忽略返回值。

编辑:

如果这是基类的唯一实现,那么作者的目标可能是 pimpl idiom隐藏实现细节和/或减少编译时依赖性。

关于c++ - 这是一个好的代码吗(在阅读同事的代码时遇到的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488677/

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