zoukankan      html  css  js  c++  java
  • 成员变量覆盖

    父子间的同名成员变量:

             子类成员将隐藏父类的成员,但是父类成员变量只是被隐藏,父类的同名函数依旧存在于子类中。

             可以通过作用域分辨符( :: )访问父类的同名同名变量。

             通过子类对象调用同名变量时,只会调用子类的成员变量。

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Parent
    {
    public:
        int value;
    };
    
    class Child : public Parent
    {
    public:
        int value;
    };
    
    int main()
    {
        Child c;   
        c.value = 100;          // 访问子类的value
        c.Parent::value = 100;  // 通过父类名和作用域分辨符访问父类的value   
        return 0;
    }

    父子间的同名成员函数:

            子类继承父类时同名函数不是函数重载,原因是作用域不同,只是函数同名覆盖。

            父类的同名函数只是被隐藏,但依旧存在于子类中。

            通过作用域分辨符( :: )访问父类同名函数。

            通过子类对象调用同名成员函数时,只会调用子类的成员函数。

            子类可以定义和父类中完全相同的同名函数。

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class Parent
    {
    public:
        void add(int x)
        {
            std << "parent : add(int x) " << endl;
        } 
        void add(int x, int y)
        {
            std << "parent : add(int x, int y) " << endl
        }
    };
    
    class Child : public Parent
    {
    public:
        void add(int x)  // 和父类中完全相同的函数,作用域不同,合法
        {
            std << "Child : add(int x)" << endl;
        }   
        void add(int x, int y) // 和父类中完全相同的函数,作用域不同,合法
        { 
            std << "Child : add(int x, int y)" << endl;
        }
        void add(int x, int y, int z) // 和父类中函数名相同的函数, 作用域不同,只是覆盖,不是重载
        {
            std << "Child : add(int x, int y, int z)" << endl;
        }
    };
    
    int main()
    {
        Child c;
        c.add(1);            // Child : add(int x)
        c.add(1,1);          // Child : add(int x, int y)
        c.add(1,1,1);        // Child : add(int x, int y, int z)
        
        c.Parent::add(1);    // parent : add(int x)
        c.Parent::add(1,1);  // parent : add(int x, int y)
        return 0;
    }
  • 相关阅读:
    图片上传 多张
    ES6的新特性
    css超出一行添加省略号属性:text-overflow和white-space
    JQuery 中 is(':visible') 解析及用法
    Git详解之Git分支
    jQuery选择器和选取方法
    git命令之git remote的用法
    运算符中的一些小技巧
    Git 忽略一些文件不加入版本控制
    git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支
  • 原文地址:https://www.cnblogs.com/zsy12138/p/10847899.html
Copyright © 2011-2022 走看看