【问题标题】:C++ classes (public, private, and protected)C++ 类(公共、私有和受保护)
【发布时间】:2023-04-08 20:09:01
【问题描述】:

C++ 中的类如何声明为publicprivateprotected

【问题讨论】:

  • 如,您是否希望某人无法使用课程?一个类可以被子类化:即 class A { private: class B {}; };
  • 为什么这个问题的投票结果很接近?这似乎是一个非常合理的问题。

标签: c++ private public protected access-modifiers


【解决方案1】:

在 C++ 中,没有像 Java 或 C# 中那样具有访问说明符的整个类的概念。如果一段代码对某个类具有可见性,则它可以引用该类的名称并对其进行操作。也就是说,对此有一些限制。仅仅因为您可以引用一个类并不意味着您可以实例化它,例如,因为构造函数可能被标记为私有。同样,如果该类是在另一个类的私有或受保护部分中声明的嵌套类,则该类将无法从该类及其朋友的外部访问。

【讨论】:

    【解决方案2】:

    通过将一个类嵌套在另一个类中:

    class A
    {
    public:
        class B {};
    protected:
        class C {};
    private:
        class D {};
    };
    

    【讨论】:

      【解决方案3】:

      您可以通过简单地不向客户端发布它们的接口来实现“私有类”。

      我不知道如何创建“受保护的类”。

      【讨论】:

        【解决方案4】:

        这取决于您是指成员还是继承。你不能有'private class',这样。

        class Foo
        {
        public:
        Foo() {} //public ctr
        protected:
        void Baz() //protected function
        private:
        void Bar() {} //private function
        }
        

        或继承:

        class Foo : public Bar
        class Foo : protected Bar
        class Foo : private Bar
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-19
          • 2011-05-27
          • 2017-12-19
          • 2020-11-07
          • 2021-03-19
          • 2012-06-15
          • 2017-08-22
          • 1970-01-01
          相关资源
          最近更新 更多