天天看点

[c/c++]函数的隐藏

[c/c++]函数的隐藏

#include  < iostream >

[c/c++]函数的隐藏

using   namespace  std;

[c/c++]函数的隐藏

class  B

[c/c++]函数的隐藏
[c/c++]函数的隐藏

... {

[c/c++]函数的隐藏

public:

[c/c++]函数的隐藏

    void f(int) const

[c/c++]函数的隐藏
[c/c++]函数的隐藏

    ...{

[c/c++]函数的隐藏

        cout<<"B::f int"<<endl;

[c/c++]函数的隐藏

    }

[c/c++]函数的隐藏

    void f(double) const

[c/c++]函数的隐藏
[c/c++]函数的隐藏

    ...{

[c/c++]函数的隐藏

        cout<<"B::f double"<<endl;

[c/c++]函数的隐藏

    }

[c/c++]函数的隐藏

} ;

[c/c++]函数的隐藏
[c/c++]函数的隐藏

class  D:  public  B

[c/c++]函数的隐藏
[c/c++]函数的隐藏

... {

[c/c++]函数的隐藏

public:

[c/c++]函数的隐藏

    void f(void*) const

[c/c++]函数的隐藏
[c/c++]函数的隐藏

    ...{

[c/c++]函数的隐藏

        cout<<"D::f void"<<endl;

[c/c++]函数的隐藏

    }

[c/c++]函数的隐藏

} ;

[c/c++]函数的隐藏
[c/c++]函数的隐藏

int  main()

[c/c++]函数的隐藏
[c/c++]函数的隐藏

... {

[c/c++]函数的隐藏

    D d;

[c/c++]函数的隐藏

    d.f(0); 

[c/c++]函数的隐藏

    //d.f(1);    //error

[c/c++]函数的隐藏

    //d.f(0.1);    //error

[c/c++]函数的隐藏
[c/c++]函数的隐藏

    system("pause");

[c/c++]函数的隐藏

    return 0;

[c/c++]函数的隐藏

}

[c/c++]函数的隐藏
[c/c++]函数的隐藏

// 输出D::f void

[c/c++]函数的隐藏

// 父类的两个f函数被子类的同名f函数隐藏,不再被调用到。