⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 17-8.txt

📁 《C/C++完美演绎》源代码
💻 TXT
字号:
/* 范例:17-8 */
#include <iostream.h>
class A
{
  public:
    A():a(1){}
    int a;
    void fun1(){cout << "fun1 in a\n";} // #1
    void fun2(){cout << "fun2 in a\n";} // #2
    void fun3(){cout << "fun3 in a\n";} // #3
};
class B:public A
{
  public:
    B():a(2){}
    int a;    // A::a 被隐藏
    // int fun1(){return 10;}  // ok => override     #1.0
    void fun1(){cout << "fun1 in b\n";} // override   #1.1
    void fun1(int k){cout << "fun1(int) in b\n";}
                                // overload   #1.2
    void fun2(int k){cout << "fun2(int) in b\n";}
                                // ?override ? overload #2.1
};
void main()
{
  B obj1;

  cout << obj1.a << "\n";
  obj1.fun1();
  obj1.fun1(7);
  obj1.fun2(8);
  //obj1.fun2();  // error #4
  obj1.fun3();

  // 以A::获得被隐藏的fun1()
  cout << obj1.A::a << "\n";
  obj1.A::fun1();
  obj1.A::fun2();
  getchar();
}

程序执行结果:
2
fun1 in b
fun1(int) in b
fun2(int) in b
fun3 in a
1
fun1 in a
fun2 in a

⌨️ 快捷键说明

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