原创 c++中不能被聲明爲虛函數的函數

普通函數 只能被重載,編譯器在編譯時綁定函數 靜態成員函數 靜態屬於類級別的修飾,不存在對象運行時動態綁定 內聯成員函數 內聯函數也是編譯時展開的的函數,和虛函數的動態綁定矛盾 構造函數 對象還沒創建,虛表指針還沒形成,無法使用

原创 c++標準庫能繼承嗎

不推薦,千萬不要用! 因爲STL這些容器都沒有虛析構函數!子類就有不能被析構的風險!

原创 python函數參數(值、引用)

python函數參數(值、引用) 首先要知道python變量有兩種分類: 不可變類型:string、number、tuple 可變類型:list、dict 總結: 不可變變量做爲參數,是值傳遞 可變變量作爲參數,是傳引用

原创 struct和typedef struct的理解

struct和typedef struct 分三塊來講述:  1 首先://注意在C和C++裏不同    在C中定義一個結構體類型要用typedef:    typedef struct Student    {    int a; 

原创 數組名 和 &數組名

假設我們定義一個數組char a[16]; 那麼a與&a分別代表什麼呢?它們完全一樣嗎? a其實代表的是數組中首元素的地址,即a[0]的地址,&a代表的是整個數組的起始地址。我們做個測試就可以很容易知道。 我們分別測試a  a+1 

原创 虛基類的作用

B和C都繼承A,D繼承B,又繼承C,如下圖: 普通繼承中,每繼承一次就保留一份間接基類,而虛繼承只保留一份! class A { public: int i; void showa(){cout<<"i="

原创 const 修飾分析

const用於修飾函數時,一般是const修飾類的成員函數(函數定義體),表示在函數體中成員變量不能改變; 其函數形式爲:int ff(void)const; const修飾函數的返回值,用於返回常量; 如const int ff(); 

原创 c++ 多態之覆蓋、重載、隱藏

c++中多態的作用是什麼呢?其中封裝可以使得代碼模塊化,繼承可以擴展已存在的代碼,他們的目的都是爲了代碼重用。而多態的目的則是爲了接口重用。也就是說,不論傳遞過來的是哪個類的對象,函數都能夠通過同一個接口調用到這個類的對象的方法。簡單地概