【C++類模板對象做函數參數】

類模板實例化出的對象,向函數傳參的方式

一共有三種傳入方式:

  1. 指定傳入的類型 — 直接顯示對象的數據類型
  2. 參數模板化 — 將對象中的參數變為模板進行傳遞
  3. 整個類模板化 — 將這個對象類型 模板化進行傳遞

總結:比較廣泛使用的是第一種,指定類型傳入

#include<iostream>
using namespace std;//類模板
template<class Nametype,class agetype = int>
class Person
{
public:Person(Nametype name, agetype age){this->mname = name;this->mage = age;}Nametype mname;agetype mage;void showPerson(){cout << "name: " << mname << "age: " << mage << endl;}
};//1 指定傳入的類型void printPerson1(Person<string, int>& p)
{p.showPerson();
}void test01()
{Person<string, int>p("黃剛", 21);printPerson1(p);
}//2.參數模板化template<class T1,class T2>
void printPerson2(Person<T1, T2>& p)
{p.showPerson();cout << "T1的類型為: "<<typeid(T1).name() << endl;//T1的類型為: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >cout << "T2的類型為: " << typeid(T2).name() << endl;//T2的類型為: int}
void test02()
{Person<string, int>p("黃剛", 100);printPerson2(p);
}//3.整個類模板化template<class T3>
void printPerson3(T3& p)
{cout << "T3的類型為: "<<typeid(T3).name() << endl;//T3的類型為: class Person<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int>p.showPerson();
}
void test03()
{Person<string, int>p("黃剛", 100);printPerson3(p);
}int main()
{test01();test02();test03();return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215002.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215002.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215002.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡(三)

&#xff08;十一&#xff09;路由算法 A、路由算法分類 動態路由和靜態路由 靜態路由&#xff1a;人工配制&#xff0c;路由信息更新慢&#xff0c;優先級高。這種在實際網絡中要投入成本大&#xff0c;準確但是可行性弱。 動態路由&#xff1a;路由更新快&#xff0c;自動…

12/11

完善對話框&#xff0c;點擊登錄對話框&#xff0c;如果賬號和密碼匹配&#xff0c;則彈出信息對話框&#xff0c;給出提示”登錄成功“&#xff0c;提供一個Ok按鈕&#xff0c;用戶點擊Ok后&#xff0c;關閉登錄界面&#xff0c;跳轉到其他界面 如果賬號和密碼不匹配&#xf…

css的Grid布局

1.簡單布局 .grid { display: grid; grid-template-columns: 1fr 2fr 1fr; 布局樣式 column-gap: 24px; 列間距 row-gap: 24px; 行間距 } 2.排列布局 center垂直方向居中對其 end靠下對齊 3.水平方向對齊 center居中 end靠右對齊 space-between兩段對齊 4.對…

【SpringBoot】Spring Boot 單體應用升級 Spring Cloud 微服務

Spring Cloud 是在 Spring Boot 之上構建的一套微服務生態體系&#xff0c;包括服務發現、配置中心、限流降級、分布式事務、異步消息等&#xff0c;因此通過增加依賴、注解等簡單的四步即可完成 Spring Boot 應用到 Spring Cloud 升級。 Spring Boot 應用升級為 Spring Cloud…

插入排序和希爾排序

目錄 前言 一.插入排序 1.思想 2.實現 3.特點 二,希爾排序 1.思想 2,實現 3.特點 前言 排序算法是計算機科學中的基礎工具之一&#xff0c;對于數據處理和算法設計有著深遠的影響。了解不同排序算法的特性和適用場景&#xff0c;能夠幫助程序員在特定情況下選擇最合適的…

如何使用玻璃材質制作3D鉆石模型

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xf…

Spark與PySpark(1.概述、框架、模塊)

目錄 1.Spark 概念 2. Hadoop和Spark的對比 3. Spark特點 3.1 運行速度快 3.2 簡單易用 3.3 通用性強 3.4 可以允許運行在很多地方 4. Spark框架模塊 4.1 Spark Core 4.2 SparkSQL 4.3 SparkStreaming 4.4 MLlib 4.5 GraphX 5. Spark的運行模式 5.1 本地模式(單機) Local運行模…

初識Vue 解決vue在啟動時生成的提示

讓我為大家簡單介紹一下吧&#xff01; Vue是一套用于構建用戶界面的漸進式javaScript框架 當我們引入vue.js后 <script src"../js/vue.js"></script>我們發現&#xff0c;當我們打開網頁時&#xff0c;控制臺會出現以下內容 那我們該怎么解決呢&…

【設計模式--結構型--組合模式】

設計模式--結構型--組合模式 組合模式定義結構案例組合模式的分類優點使用場景 組合模式 定義 又稱部分整體模式&#xff0c;是用于把一組相似的對象當作一個單一的對象。組合模式依據樹型結構來組合對象&#xff0c;用來表示部分以及整體層次&#xff0c;這種類型的設計模式…

新增模板中心和系統設置模塊,支持飛書平臺對接,DataEase開源數據可視化分析平臺v2.1.0發布

這一版本的功能升級包括&#xff1a;新增模板中心&#xff0c;用戶可以通過模板中心的模板快速創建儀表板和數據大屏&#xff1b;新增“系統設置”功能模塊&#xff0c;該模塊包含系統參數、認證設置、嵌入式管理、平臺對接四個子模塊。在“系統參數”子模塊中&#xff0c;用戶…

代碼上傳的gitee平臺

1.首先我們訪問工作臺 - Gitee.com進行注冊和登錄 2.我們創建一個倉庫&#xff1a; 3.在本地創建我們的項目 在這文件夾里面我們打開git bush,執行 一下操作&#xff1a; git init &#xff1a;初始化倉庫 git status&#xff1a;檢查狀態 git add . &#xff1a;將當前文件…

ubuntu 命令行安裝 conda

安裝包地址&#xff1a; Index of / 找到對應的版本&#xff0c;右鍵點復制鏈接 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.shbash Anaconda3-2023.09-0-Linux-x86_64.sh https://linzhji.blog.csdn.net/article/details/126530244

BERT大模型:英語NLP的里程碑

BERT的誕生與重要性 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;大模型標志著自然語言處理&#xff08;NLP&#xff09;領域的一個重要轉折點。作為首個利用掩蔽語言模型&#xff08;MLM&#xff09;在英語語言上進行預訓練的模型&…

Keepalived+Nginx實現高可用(上)

一、背景與簡介 為了服務的高可用性&#xff0c;避免單點故障問題&#xff0c;通常我們使用"冗余設計思想"進行架構設計。冗余設計思想&#xff0c;本質就是將同一個應用或者服務放置在多臺不同的服務器上[雞蛋不放在同一個籃子里]&#xff0c;這樣減少整體服務宕機的…

ACWing week 3(C語言) 725.完全數

一個整數&#xff0c;除了本身以外的其他所有約數的和如果等于該數&#xff0c;那么我們就稱這個整數為完全數。 例如&#xff0c;66 就是一個完全數&#xff0c;因為它的除了本身以外的其他約數的和為 1236 現在&#xff0c;給定你 N 個整數&#xff0c;請你依次判斷這些數是…

ESP32網絡開發實例-搭建ESP32固件遠程升級服務器

搭建ESP32固件遠程升級服務器 文章目錄 搭建ESP32固件遠程升級服務器1、ESP32設備自動升級流程2、軟件準備3、硬件準備4、代碼實現4.1 固件升級服務器代碼實現4.2 基礎固件代碼4.3 新固件代碼實現我們在前面的文章中,已經實現了OTA方式升級固件的兩種方式:在Arduino IDE 中升…

數據結構與算法-動態規劃-機器人達到指定位置方法數

機器人達到指定位置方法數 來自左程云老師書中的一道題 【題目】 假設有排成一行的 N 個位置&#xff0c;記為 1~N&#xff0c;N 一定大于或等于 2。開始時機器人在其中的 M 位置上&#xff08;M 一定是 1&#xff5e;N 中的一個&#xff09;&#xff0c;機器人可以往左走或…

基于大語言模型的復雜任務認知推理算法CogTree

近日&#xff0c;阿里云人工智能平臺PAI與華東師范大學張偉教授團隊合作在自然語言處理頂級會議EMNLP2023上發表了基于認知理論所衍生的CogTree認知樹生成式語言模型。通過兩個系統&#xff1a;直覺系統和反思系統來模仿人類產生認知的過程。直覺系統負責產生原始問題的多個分解…

10 # 類:繼承和成員修飾符

類的基本實現 類的成員屬性都是實例屬性&#xff0c;而不是原型屬性&#xff0c;類的成員方法都是原型方法。 class Dog {constructor(name: string) {this.name name;}name: string;run() {} }console.log(Dog.prototype); let dog new Dog("wangwang"); consol…

知識筆記(五十四)———mysql比較varchar值大小_Mysql varchar大小長度問題

1、限制規則 字段的限制在字段定義的時候有以下規則&#xff1a; a) 存儲限制 varchar 字段是將實際內容單獨存儲在聚簇索引之外&#xff0c;內容開頭用1到2個字節表示實際長度(長度超過255時需要2個字節)&#xff0c;因此最大長度不能超過65535。 b) 編碼長度限制 字符類…