C++继承中同名的解决方法

#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;
class Father
{
public:
	Father()
	{
		a = 10;
	}
	void func()
	{
		cout << 1 << endl;
	}
	void func(int a)
	{
		cout << 2 << endl;
	}
	void func(int a, int b)
	{
		cout << 3 << endl;
	}
	void suv()
	{

	}
public:
	int a;
};
class Son :public Father
{
public:
	Son()
	{
		a = 20;
	}
	void func()
	{
		cout << 6 << endl;
	}
public:
	int a;
};
void test()
{
	Son s;
	cout << s.a << endl;//输出的是子类的值,父类的a会被隐藏,需要通过作用域来访问
	cout << s.Father::a << endl;
	s.func();//输出6
	/*s.func(1);同名父类的函数都会被隐藏,通过作用域访问
	s.func(2, 3);*/
	s.Father::func();
	s.Father::func(3);
	s.Father::func(2, 3);
	s.suv();
	
}
int main()
{
	test();
	system("pause");
	return EXIT_SUCCESS;
}

你可能感兴趣的:(c++,开发语言)