• <i id='5Mr9i'><tr id='5Mr9i'><dt id='5Mr9i'><q id='5Mr9i'><span id='5Mr9i'><b id='5Mr9i'><form id='5Mr9i'><ins id='5Mr9i'></ins><ul id='5Mr9i'></ul><sub id='5Mr9i'></sub></form><legend id='5Mr9i'></legend><bdo id='5Mr9i'><pre id='5Mr9i'><center id='5Mr9i'></center></pre></bdo></b><th id='5Mr9i'></th></span></q></dt></tr></i><div id='5Mr9i'><tfoot id='5Mr9i'></tfoot><dl id='5Mr9i'><fieldset id='5Mr9i'></fieldset></dl></div>
  • <legend id='5Mr9i'><style id='5Mr9i'><dir id='5Mr9i'><q id='5Mr9i'></q></dir></style></legend>

    1. <tfoot id='5Mr9i'></tfoot>

        <bdo id='5Mr9i'></bdo><ul id='5Mr9i'></ul>

      <small id='5Mr9i'></small><noframes id='5Mr9i'>

      1. 为什么我不能从派生类的实例访问受保护的成员

        时间:2023-08-02
        <legend id='cw8v5'><style id='cw8v5'><dir id='cw8v5'><q id='cw8v5'></q></dir></style></legend>

              <bdo id='cw8v5'></bdo><ul id='cw8v5'></ul>

              <tfoot id='cw8v5'></tfoot>
                <tbody id='cw8v5'></tbody>
            • <i id='cw8v5'><tr id='cw8v5'><dt id='cw8v5'><q id='cw8v5'><span id='cw8v5'><b id='cw8v5'><form id='cw8v5'><ins id='cw8v5'></ins><ul id='cw8v5'></ul><sub id='cw8v5'></sub></form><legend id='cw8v5'></legend><bdo id='cw8v5'><pre id='cw8v5'><center id='cw8v5'></center></pre></bdo></b><th id='cw8v5'></th></span></q></dt></tr></i><div id='cw8v5'><tfoot id='cw8v5'></tfoot><dl id='cw8v5'><fieldset id='cw8v5'></fieldset></dl></div>

              <small id='cw8v5'></small><noframes id='cw8v5'>

                  本文介绍了为什么我不能从派生类的实例访问受保护的成员?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有一段时间没有使用 C++,无法弄清楚为什么以下不起作用:

                  I haven't done C++ in a while and can't figure out why following doesn't work:

                  class A {
                  protected:
                    int num;
                  };
                  
                  class B : public A {
                  };
                  
                  main () {
                    B * bclass = new B ();
                    bclass->num = 1;
                  }
                  

                  编译产生:

                  错误 C2248:A::num":无法访问类A"中声明的受保护成员

                  error C2248: 'A::num' : cannot access protected member declared in class 'A'

                  派生类不应该访问受保护的成员吗?

                  Shouldn't protected members be accessible by derived classes?

                  我错过了什么?

                  推荐答案

                  是的,派生类可以访问受保护的成员,但是您正在 main() 函数中访问它,该函数在层次结构之外.如果你在 B 类中声明一个方法并访问 num 就可以了.

                  yes protected members are accessible by derived classes but you are accessing it in the main() function, which is outside the hierarchy. If you declare a method in the class B and access num it will be fine.

                  这篇关于为什么我不能从派生类的实例访问受保护的成员?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:C++11 虚拟析构函数和移动特殊函数的自动生成 下一篇:C++ 中隐藏特定函数的方法

                  相关文章

                  最新文章

                      <i id='u4DUe'><tr id='u4DUe'><dt id='u4DUe'><q id='u4DUe'><span id='u4DUe'><b id='u4DUe'><form id='u4DUe'><ins id='u4DUe'></ins><ul id='u4DUe'></ul><sub id='u4DUe'></sub></form><legend id='u4DUe'></legend><bdo id='u4DUe'><pre id='u4DUe'><center id='u4DUe'></center></pre></bdo></b><th id='u4DUe'></th></span></q></dt></tr></i><div id='u4DUe'><tfoot id='u4DUe'></tfoot><dl id='u4DUe'><fieldset id='u4DUe'></fieldset></dl></div>
                      <legend id='u4DUe'><style id='u4DUe'><dir id='u4DUe'><q id='u4DUe'></q></dir></style></legend>

                      <small id='u4DUe'></small><noframes id='u4DUe'>

                    1. <tfoot id='u4DUe'></tfoot>
                        <bdo id='u4DUe'></bdo><ul id='u4DUe'></ul>