C++类中调用与成员函数同名的全局函数

来源:互联网 发布:软件系统开发计划书 编辑:程序博客网 时间:2024/05/20 02:51

c++ 类中的方法调用本类的与全局函数同名的方法

如一个类A中有成员函数test1()与test2(),而全局函数中有一个名字也为test1(),这时候若在A的test2()成员函数中调用test1()函数,调用的会是哪个?

看例子:

void test1()

{cout<<"i am outer test1";}

class A{

void test1()

{cout<<"i am inner test1";]

void test2()

{test1();}

void test3()

{::test1();}

};

void main()

{A a;

a.test2(); //输出i am inner test1

a.test3(); //输出i am outer test1

}

可见,这是同名覆盖原则。 这时候若要访问全局同名函数,只消加一个域标志 ::