学习了类的继承,今天说一下当父类与子类中有同名函数和变量时那么程序将怎么执行。首先明确当基类和子类有同名函数或者变量时,子类依然从父类继承。

  举例说明:

  C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量-LMLPHPC++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量-LMLPHP

  C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量-LMLPHPC++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量-LMLPHP

  例程说明:

  父类和子类有同名的成员 data;同名函数printfa();

  子类增加两个打印函数:void son_data();void father_data(); 分别打印自身的data 和继承来的data变量。

  

  总结说明同名函数/变量的使用

  1.访问继承的同名成员: 

    内部访问:

     父类名::成员;

     void father_data()
{
//访问父类成员 使用this指针访问自身的成员
cout<<"father data : "<<father::data<<endl;
}

      

    外部访问(main函数52 /57行):

      对象名.父类名::成员

      C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量-LMLPHP

    

  2.使用this指针指向同名成员访问的是在本类的成员。

  3.同名成员的访问需要加上 类名::成员 ,如果没加上类名则默认访问子类的成员。

  4.同名的成员分配在不同的内存中,不存在内存共享冲突的问题

 同名函数和函数重写virtual关键字的使用 在下一篇笔记中

C++ 学习笔记 (七)继承与多态 virtual关键字的使用场景

05-11 09:04