a_7_1.cpp

来自「C++应用教程原码,里面包含该书中有十三章内容的代码,详细具体」· C++ 代码 · 共 45 行

CPP
45
字号
// 这是一道纠错题,读者必须纠正其中的错误才能成功编译

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

class A {
   public: 
      int x;
   private:
      int y;
   protected:
      int z;
};
 //class B :protected A {
class B: public A {   // 改为public继承,可以纠正语句②的错误
  public:
      void fun() { x = 1; z = 3; }
};
class BB :public B {
  public:
      void fun() { x = 3; z = 1; }
};

 //class C :private A {
class C: public A {   // 改为public继承,可以纠正语句①的错误
  public:
      void fun() { x = 1; z = 3; }
};

//class CC :protected C {
class CC: public C {   // 改为public继承,可以纠正语句④的错误
  public:
      void fun () { x = 1; z = 3; }  // ① 错误!
};
void main()
{  BB b;
   b.x = 10;    // ② 错误!
   //b.y = 10;    // ③ 错误!这句应该删除,因为它无法访问private成员
   b.fun();     // 正确!
   CC c;
   c.x =10;     // ④ 错误!
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?