C++學習筆記34 模版的原理,學習筆記34
模版在C++中具有非常重要的地位,STL就是大量運用模版寫出來的。
模版的優點我就不一一列舉了。這裡我只說一下模版的原理。
當編譯器遇到模版方法定義的時候,編譯器進行語法檢查,但是並不會編譯模版。編譯器無法編譯模版定義,因為編譯器不知道要使用的類型是什麼,編譯器不知道x和y的類型的情況下無法為x=y這樣的語句產生代碼。
當編譯器遇到一個執行個體化的模版的時候,例如vector<int> vi(這裡我只是拿vector舉例,實際上基本類型的vector代碼好像會自動存在編譯器中),編譯器會將模版類定義中的每一個T替換為int,從而產生vector的int版本。當模版遇到這個模版的另一個執行個體的時候,例如vector<string>,就會產生相應的string版本代碼。
1.選擇性執行個體化。
編譯器只會為那些實際為某個類型調用的類方法產生代碼。
#include <iostream>using namespace std;template<class T>class test{private:T data;public:test(T d):data(d){}void show()const{cout<<"this data is "<<data<<endl;}};int main(){test<int> ti(15);ti.show();test<string> ts("string");ts.show();}
例如上面的例子編譯器只會產生test的int以及string版本,其他的如double,char等版本則不會產生。
各位有沒有C語言的學習筆記或整理好的一些資料?
《c語言編程百例》,按照例子來學習比較容易上手,比直接看那些原理性的書籍強 //
是寫程式的機試還是理論的筆試?
機試推薦《程式設計引導及線上實踐》,大綱級書籍,具體連結:ai.pku.edu.cn/book/
理論的筆試肯定還是以譚浩強的為主,不過確實有些亂,你不妨買本它配套的習題之類的看看,譚浩強此書配套習題相當多,基本上都大同小異,根據手頭已有的資料為主來選吧,具體不推薦了。
cms標籤與模版原理是什
CMS標籤是為了更好的調用已經定義好的標籤相關的功能。比如欄目ID是1的話,那麼 a=1這樣子。模板是什麼概念呢,就是或 單獨配置模板的圖片,CSS,網頁檔案及其他的檔案,可以拿下放在別的程式裡實用。修改模板也就是修改裡面的CMS標籤。原來的ID是5 你自己建了個欄目 是6的話,相應的改下模板裡的就可以了