c – 私人继承是否总是意味着“HAS-A”?

根据我最喜欢的作者,Mr Scott Meyers,私人继承和构成意味着同样的事情,即Has-A关系.因此,可以通过私有继承获得从组合中获得的所有东西(包含A类,其中A类具有B类成员),反之亦然.

所以下面的代码应该是Has-A关系,但从我的观点来看,它不是!

class A : private boost::noncopyable {.. this is irrelevant };

任何人都可以告诉我,我失踪了吗?或者如何通过合成实现此代码?

解决方法:

您的示例可以通过以下组合实现:

class A {
private:
    class B {
        B(const B&) = delete;
        B& operator=(const B&) = delete;
    } b;
};

A是不可复制的,因为其成员b是不可复制的.

上一篇:将Android封装库通过gradle部署到maven私服并依赖使用


下一篇:OpenVINO 2019 R2.0 Custom Layer Implementation for linux(1)