gpt4 book ai didi

c++ - 继承类型强制

转载 作者:搜寻专家 更新时间:2023-10-31 01:06:31 25 4
gpt4 key购买 nike

是否可以将继承强制设置为公共(public)、私有(private)或 protected ?

即:

class block: public shape{ // Only way to inherit from shape
};

// class block: private shape{}; // throws an error

为了让事情更清楚:

  • 这不会导致当前状态出错
  • 我想要实现的是强制约束任何从 shape 派生的类都是公开的。例如。如果一个类试图从 shape 私有(private)继承,这应该会触发编译错误。

最佳答案

基类通常无法指定其派生类的接口(interface)。这种约束似乎并不能解决任何问题,“强制公开”可以通过限制对派生类的访问轻松解决。

例如,这里的Square提供了一个Shape的公共(public)接口(interface),但是由于访问保护,任何人都不能访问Square

class SquaresAreAllMine {
private:
class Square : public Shape {};
};

(声明虚函数的签名是一个异常(exception),因为派生类无法恢复到非虚状态。不过,这并不是真正的限制。)

关于c++ - 继承类型强制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20591818/

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