c++從入門到精通——繼承中的同名處理

繼承中的同名處理

如果子類和父類擁有同名的函數 屬性 ,子類會覆蓋父類的成員嗎? 不會
如果子類與父類的成員函數名稱相同,子類會把父類的所有的同名版本都隱藏掉
想調用父類的方法,必須加作用域

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class Base
{
public:
	Base()
	{
		m_A = 100;
	}

	void fun()
	{
		cout << "Base func調用" << endl;
	}
	void fun(int a)
	{
		cout << "Base func (int a)調用" << endl;
	}


	int m_A;
};

class Son :public Base
{
public:
	Son()
	{
		m_A = 200;
	}

	void fun()
	{
		cout << "Son func調用" << endl;
	}

	int m_A;
};

void test01()
{
	Son s1;
	cout << s1.m_A << endl;
	//想調用 父類中 的m_A

	cout << s1.Base::m_A << endl;

	s1.fun();

	//調用父類的func
	s1.Base::fun(10);

}

//如果子類和父類擁有同名的函數 屬性 ,子類會覆蓋父類的成員嗎? 不會
//如果子類與父類的成員函數名稱相同,子類會把父類的所有的同名版本都隱藏掉
//想調用父類的方法,必須加作用域


int main(){

	test01();

	system("pause");
	return EXIT_SUCCESS;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章