一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++中模板(Template)詳解及其作用介紹

C++中模板(Template)詳解及其作用介紹

2021-12-30 15:21我是小白呀 C/C++

這篇文章主要介紹了C++中模板(Template)的詳解及其作用介紹,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

概述

模板可以幫助我們提高代碼的可用性, 可以幫助我們減少開發的代碼量和工作量.

C++中模板(Template)詳解及其作用介紹

 

函數模板

函數模板 (Function Template) 是一個對函數功能框架的描述. 在具體執行時, 我們可以根據傳遞的實際參數決定其功能. 例如:

int max(int a, int b, int c){
  a = a > b ? a:b;
  a = a > c ? a:c;

  return a;
}

long max(long a, long b, long c){
  a = a > b ? a:b;
  a = a > c ? a:c;

  return a;
}

double max(double a, double b, double c){
  a = a > b ? a:b;
  a = a > c ? a:c;

  return a;
}

寫成函數模板的形式:

template<typename T>
T max(T a, T b, T c){
  a = a > b ? a:b;
  a = a > c ? a:c;

  return a;
}

 

類模板

類模板 (Class Template) 是創建泛型類或函數的藍圖或公式.

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類型名為numtype
class Compare {
private:
  numtype x, y;
public:
  Compare(numtype a, numtype b){x=a; y=b;}
  numtype max() {return (x>y)?x:y;};
  numtype min() {return (x < y)?x:y;};
};

mian:

int main() {

  Compare<int> compare1(3,7);
  cout << compare1.max() << ", " << compare1.min() << endl;

  Compare<double> compare2(2.88, 1.88);
  cout << compare2.max() << ", " << compare2.min() << endl;

  Compare<char> compare3('a', 'A');
  cout << compare3.max() << ", " << compare3.min() << endl;

  return 0;

}

輸出結果:

7, 3
2.88, 1.88
a, A

 

模板類外定義成員函數

如果我們需要在模板類外定義成員函數, 我們需要在每個函數都使用類模板. 格式:

template<class 虛擬類型參數>
函數類型 類模板名<虛擬類型參數>::成員函數名(函數形參表列) {}

類模板:

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類型名為numtype
class Compare {
private:
  numtype x, y;
public:
  Compare(numtype a, numtype b);
  numtype max();
  numtype min();
};

template<class numtype>
Compare<numtype>::Compare(numtype a,numtype b) {
  x=a;
  y=b;
}

template<class numtype>
numtype Compare<numtype>::max( ) {
  return (x>y)?x:y;
}

template<class numtype>
numtype Compare<numtype>::min( ) {
  return (x>y)?x:y;
}

#endif //PROJECT2_COMPARE_H

 

類庫模板

類庫模板 (Standard Template Library). 例如:

#include <vector>
#include <iostream>
using namespace std;


int main() {
  int i = 0;
  vector<int> v;
  for (int i = 0; i < 10; ++i) {
      v.push_back(i);  // 把元素一個一個存入到vector中
  }

  for (int j = 0; j < v.size(); ++j) {
      cout << v[j] << " ";  // 把每個元素顯示出來
  }

  return 0;
}

輸出結果:

0 1 2 3 4 5 6 7 8 9

 

抽象和實例

C++中模板(Template)詳解及其作用介紹

到此這篇關于C++中模板(Template)詳解及其作用介紹的文章就介紹到這了,更多相關C++模板內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_46274168/article/details/116504709?spm=1001.2014.3001.5501

延伸 · 閱讀

精彩推薦
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
主站蜘蛛池模板: 半挠脚心半黄的网站 | 九色PORNY丨视频入口 | 91久久精品国产亚洲 | 2015小明台湾永久区域免费 | 国产精品久久久精品视频 | ai换脸杨幂被c在线观看 | 女教师系列三上悠亚在线观看 | 亚洲精品久久久久久婷婷 | 果冻传媒91| 天美网站传媒入口网址 | 欧美高清日韩 | 母乳在线| 亚洲成年网 | 91在线视频免费观看 | 色在线影院 | 厨房里摸着乳丰满在线观看 | 2019天天干天天操 | 甜性涩爱 | 日韩在线一区二区三区 | 热99re久久精品国产首页 | 青青草成人影院 | 天天久久综合网站 | 日本黄色高清视频网站 | 护士被多人调教到失禁h | 久久综合狠狠综合狠狠 | 九九热综合 | 亚洲AV国产福利精品在现观看 | 日本片免费观看一区二区 | 免费观看无遮挡www的小视频 | 国产最强大片免费视频 | 美女扒开屁股让男人进去 | 青草青青在线 | sedog在线长片| 国产a一级毛片午夜剧院 | 饭冈加奈子在线播放观看 | 国产成人亚洲精品一区二区在线看 | 久久91精品国产91久 | 欧美精品一区二区三区免费 | 免费网址视频在线看 | 欧美人与禽杂交大片 | 香蕉eeww99国产精品 |