本篇文章給大家分享的是有關如何深入剖析C++類模板應用代碼,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
C++中有類繼承的概念,意思就是能夠實現與繼承相同功能的一種應用。
C++類模板代碼示例:
#include "stdafx.h"
#include "Stack.h"
#include < iostream>
#include < string>
#include < cstdlib>
#include < stdexcept>
int _tmain(int argc, _TCHAR* argv[])
{
try
{
Stack< int> intStack;
Stack< std::string> stringStack;
intStack.push(7);
std::cout< < "intStack.top() = >"< < intStack.top()
< < std::endl;stringStack.push("Hello!");
std::cout< < "stringStack.top() = >"< < stringStack.top()
< < std::endl;stringStack.pop();
stringStack.pop();
}
catch(std::exception const& ex)
{
std::cerr< < "Exception: "< < ex.what()< < std::endl;
return EXIT_FAILURE;
}
return 0;
}
C++字符串分割函數具體使用方法總結
C++模板限制實際應用方式探討
C++反射機制具體實現方法詳解
C++獲取當前路徑實現技巧分享
C++數組參數應用方式探討
在這段C++類模板的代碼中,語句[Stack< int> intStack;]展示了類模板的實例化,并定義一個變量的過程。和函數模板的實例化一樣,類模板的實例化也必須提供所需參數的類型。實例化后定義的變量可以和普通變量一樣的調用類模板定義的成員函數。只是需要注意,對于類模板的成員函數,只有在被調用的時候才會被實例化。對于上面的intStack,由于只調用了push()成員函數,所以它只實例化了push成員函數(構造和析夠函數除外,他們會被默認的調用)。
這樣作有兩個好處:
一是可以節約空間和時間。
二是,對于每一個類模板的參數類型,都要求提供模板所需要的操作。比如,如果你用自定義的類MyClass作為一個類模板Caculator< T>的參數。由于Caculator類模板要求提供的參數類型支持“+”和"-"操作。但是,你的MyClass類只需要用到“+”操作,沒有提供"-"操作。得益于上面的規則,你的MyClass類型還是可以作為Caulator< T>的參數。前提是你沒有用到"-"相關的成員函數。
以上就是如何深入剖析C++類模板應用代碼,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。