ObjectDiagram1.png
//
// main.cpp
// C++重載重寫重定義
//
// Created by 扆佳梁 on 16/8/2.
// Copyright ? 2016年 Eric. All rights reserved.
//
#include <iostream>
using namespace std;
class Parent{
public:
void abc(){
cout<<"abc"<<endl;
}
virtual void func(){
cout<<"func() do"<<endl;
}
virtual void func(int i){
cout<<"func() do ..."<<i<<endl;
}
void func(int i,int j){
cout<<"func() do ..."<<i<<" "<<j<<endl;
}
virtual void func(int i,int j,int m,int n){
cout<<"func() do "<<i<<" "<<j<<m<<n<<endl;
}
};
class Child:public Parent{
public:
void abc(){
cout<<"child abc"<<endl;
}
void func(int i,int j){
cout<<"child func do "<<endl;
}
virtual void func(int i,int j,int k){
cout<<"child func(int i,int j,int k)"<<endl;
}
};
int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n";
Child c1;
//c1.func()會(huì)報(bào)錯(cuò)
//1 C++編譯器 看到func名字 ,因子類中func名字已經(jīng)存在了(名稱覆蓋).所以c++編譯器不會(huì)去找父類的4個(gè)參數(shù)的func函數(shù)
//2 c++編譯器只會(huì)在子類中,查找func函數(shù),找到了兩個(gè)func,一個(gè)是2個(gè)參數(shù)的,一個(gè)是3個(gè)參數(shù)的.
//3 C++編譯器開始報(bào)錯(cuò)..... error C2661: “Child::func”: 沒有重載函數(shù)接受 4 個(gè)參數(shù)
//4 若想調(diào)用父類的func,只能加上父類的域名..這樣去調(diào)用..
c1.Parent::func();
c1.func(1, 2);
Parent *p = NULL;
p = &c1;
p->abc();
return 0;
}