Student類里面定義了兩個(gè)公共的屬性age和name锅铅,還有兩個(gè)構(gòu)造函數(shù),一個(gè)是有參的一個(gè)是無參的,當(dāng)調(diào)用無參構(gòu)造函數(shù)時(shí)咐低,創(chuàng)建對(duì)象時(shí)自動(dòng)給對(duì)象賦值20和張三,當(dāng)調(diào)用有參的構(gòu)w造函數(shù)時(shí)可以自己動(dòng)態(tài)輸入要賦給變量的值袜腥。
c++中吧內(nèi)存分為五個(gè)部分见擦,student aa和student *p是兩種完全不同的創(chuàng)建對(duì)象的方法,創(chuàng)建出來的對(duì)象被儲(chǔ)存在兩個(gè)不同的區(qū)域羹令,創(chuàng)建原理也不同鲤屡,所以student aa這種創(chuàng)建方法沒法用delete aa把對(duì)象的內(nèi)存釋放
加了const,如果在函數(shù)體里加入 age = 20; 這一句會(huì)報(bào)錯(cuò)福侈,防止你意外修改數(shù)據(jù)
先調(diào)用父類的構(gòu)造函數(shù)酒来,如果子類也有的話再用自己的。
隱藏:父類student有一個(gè)叫study的方法肪凛,本來會(huì)被子類postgraduate繼承堰汉,但是因?yàn)槲覀冊(cè)谧宇惱镉侄x了一個(gè)同名方法,這種情況就叫做隱藏(用的很少伟墙,稍微理解)
重載是編譯時(shí)決定:比如set(int a)和set(String b)翘鸭,在編譯時(shí)編譯器已經(jīng)把他們當(dāng)成兩個(gè)完全不同的函數(shù),已經(jīng)決定了要調(diào)用哪一個(gè)远荠;
多態(tài)是運(yùn)行時(shí)決定:由于三個(gè)study方法都沒有參數(shù)矮固,所以編譯器在編譯時(shí)無法判斷具體要調(diào)用哪一個(gè),就把三個(gè)函數(shù)都加載進(jìn)內(nèi)存里譬淳,在內(nèi)存里形成一張?zhí)摵瘮?shù)表档址,等到具體指針調(diào)用時(shí)在去尋找對(duì)應(yīng)的函數(shù)
純虛函數(shù):只有聲明沒有定義
抽象類:可以有不同的方法,但方法中至少要有一個(gè)是純虛函數(shù)