關於C 模板繼承的注意點

2021-10-08 16:43:44 字數 764 閱讀 3295

如另一篇文章裡所說:

error: there are no arguments to 『size『 that depend on a template parameter, so a declaration of 『si_qq_26189301的部落格-csdn部落格

我在使用編寫stack類模板的時候,繼承了自定義的vector模板類。

然而在編譯的時候出錯了。

在編譯的時候,一開始使用的vs的編譯器,執行正常,沒有問題。

當換成gnu的編譯器時,編譯出錯了。

完整錯誤資訊如下:

百思不得其解。看前面的說明是缺少模板實參?

看到後面有個說明:

即 用this->push_back() 代替 push_back()

原來,在使用模板繼承的時候,如子類中有呼叫父類的成員函式和變數的情況,則需要用this來呼叫,或者使用using宣告,否則會導致在g++ 上無法編譯通過,錯誤提示會有如上錯誤資訊。

修改後,呼叫父類vector的函式和成員時,都加上了 this-> ,編譯通過,執行正常。

關於Django的模板繼承與注意事項

django中的模板引擎中,子模板繼承父模板中是這樣實現的。在父模板 假設url為 dad.html 中,aaatitle head aaap div 我沒有被覆蓋h1 body html 在子模板 假設url為 child.html 中沒有任何東西,只有以下 bbbtitle bbbbbp div...

關於建構函式繼承的兩點注意

1,如果基類沒有提供預設建構函式,派生類必須使用base顯式呼叫基建構函式。這是從msdn上看到的一句話 參考http msdn.microsoft.com zh cn library ms173115 v vs.80 aspx 一開始還真沒太引起過注意,最近才發現這個問題,例項如下 class b...

繼承 虛函式注意點

建構函式 析構函式 拷貝建構函式 賦值操作符過載函式 賦值建構函式 普通函式 非成員函式 不屬於類的成員,不能用於多型,只能被過載。靜態成員函式 靜態成員函式屬於類的資訊,被所有物件共享,不歸某個物件所有,沒有動態繫結的必要性。建構函式 友元函式 c 不支援友元函式的繼承,因此不能在派生類中被覆蓋,...