C++學習筆記34 模版的原理,學習筆記34

來源:互聯網
上載者:User

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的話,相應的改下模板裡的就可以了
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.