override覆盖
生活随笔
收集整理的這篇文章主要介紹了
override覆盖
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
/********************** 覆蓋override 重載:同一個類中(同一個作用域),重名不同參數(shù)的函數(shù)。(不能重載父類函數(shù),只會被同名覆蓋)是在編譯期間根據(jù)參數(shù)類型和個數(shù)決定函數(shù)調用。 重寫:派生類重新定義基類的虛函數(shù)(名字、參數(shù)、返回值都一樣,不能有static)。多態(tài),在運行期間根據(jù)具體對象的類型決定函數(shù)調用。 虛函數(shù)重載是晚綁定,動態(tài)鏈接編譯;否則稱為重定義,靜態(tài)編譯。 重寫函數(shù)的訪問修飾符可以不同。(private可以變?yōu)閜ublic之類的) ***********************/#include <stdio.h> #include <iostream> using namespace std;class Parent01 { public:Parent01() //構造函數(shù){cout << "P1" << endl;} public:void func(){cout << "P1 void" << endl;}virtual void func(int i){cout << "P1 int" << endl;}virtual void func(int i,int j){cout << "P1 2 int" << endl;}void run01(Parent01* p){p->func(1,2);} };class Child01:public Parent01 { public:void func(int i,int j){cout << "C1 2 int" << endl;}void func(int i,int j,int k){cout << "C1 3 int" << endl;} };int main() {Parent01 p;p.func();p.func(1);p.func(1,2);Child01 c;//c.func(); //如果父類的函數(shù)已經(jīng)被覆蓋,不能再被調用。c.Parent01::func(); //這樣就是調用父類作用域里面的函數(shù)c.func(1,2);c.func(1,2,3);//因為都沒有被覆蓋,所以父類和子類都可以調用p.run01(&p);p.run01(&c);c.run01(&p);c.run01(&c); }轉載于:https://my.oschina.net/HappyTeemo/blog/1558445
總結
以上是生活随笔為你收集整理的override覆盖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机会碰见的英语单词SUPER
- 下一篇: 竞价账户整改技巧-小脑袋竞价软件