繼承中的同名處理
如果子類和父類擁有同名的函數 屬性 ,子類會覆蓋父類的成員嗎? 不會
如果子類與父類的成員函數名稱相同,子類會把父類的所有的同名版本都隱藏掉
想調用父類的方法,必須加作用域
#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;
}