class TestPtr : protected QSharedPointer<Test>

其中Test是抽象接口(interface)类。TestPtr类应充当智能指针类。

这是否意味着TestPtr类是从Test类派生的?类测试是否包含在智能指针中?
我读到QSharedPointer是模板类。有人可以澄清一下吗?

最佳答案

并不意味着

  • TestPtr源自Test,但不是。
  • 那个class Test包含在一个智能指针中(但是很接近:这意味着TestPtr实例实际上将是Test的智能指针,除非TestPtr的作者明确选择这样做,否则不让世界知道它)。

  • 是什么意思

    这意味着TestPtr想要实现指向Test的智能指针的功能(这就是QSharedPointer<Test>的含义-请注意,我不知道QSharedPointer到底是做什么的,我只是在“读取名称中的内容”)。

    为此,TestPtr的作者计划广泛使用QSharedPointer内部作品中内置的功能(这就是TestPtr继承而不是拥有QSharedPointer成员的原因-以便能够使用protectedQSharedPointer成员)。

    但是,即使类具有大致相同的功能,作者也计划将TestPtr设置为而不是等效于QSharedPointer<TestPtr>(我们不知道使用给定信息的原因)。这就是为什么继承不是public的原因。

    关于c++ - 请解释这个表达,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5357422/

    10-11 18:18