c++中using

#include 
using  namespace std;
class A{
    public:
        void foo(void){
            cout << "A::foo(void)" << endl;
        }
};

class B:public A{
    public:
        void foo(int i){
            cout << "B::foo(int)" << endl;
        }
        void bar(void){
            foo();//这里不写using A::foo;就会报错,因为B类中有个foo(int i)
            //函数,会覆盖A类中的同名函数,但是B类中的foo是有参的,调用foo()肯定报错
            //使用using A::foo;
        }
        using A::foo;
};

int main(void){
    B b;
    b.bar();//调用A类中的foo函数
    return 0;
}

创新互联自2013年起,先为固始等服务建站,固始等地企业,进行企业商务咨询服务。为固始企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

此时我们修改B类,其他不变

class B:public A{
    public:
        void foo(void){
            cout << "B::foo(int)" << endl;
        }
        void bar(void){
            foo();//A::foo();
        }
        using A::foo;//使用using A::foo将基类中的类在此类中可见,但是
                      //此时B中的foo和A中的foo一模一样,所以会此时会调用B中的
                      //foo,如果要想调用A中的foo;直接A::foo()就好了.
      
};

新闻名称:c++中using
转载注明:http://cdiso.cn/article/jespde.html

其他资讯