類模板與運算符重載(一個簡單的例子)

類模板與運算符重載(一個簡單的例子)

標簽(空格分隔): C++ 算法競賽


下面是一段簡單的代碼,表示我們建立了一個類模板Vector,可以看做是對STL中vector的簡單實現。
為了讓這個Vector支持通過下標訪問,所以我們需要對[]這個運算符進行重載。
由于是類模板,所以在類模板內部,遵循這樣的格式:

        T& operator ** (int i);

在函數體部分,遵循這樣的格式:

        template <typename T>T& classname<T>::operator ** (paraments)    {...}

其中的classname是我們定義的類模板的名稱,paraments是這個運算符需要的參數定義。
下面一段程序就是實例。

#include <iostream>
#include <algorithm>
using namespace std;
template <typename T> class Vector {protected:int _size,_capacity;int* _elem;public:T& operator[](int i);
};
template <typename T> T& Vector<T>::operator[](int i)   {return _elem[i];}
int main()  {int a=1,b=2;const int *p1=&a;int *p2=&b;p1=p2;return 0;
}

轉載于:https://www.cnblogs.com/yichuan-sun/p/9624164.html

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

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

相關文章

Java 試題一

Java 試題一 1、GC是什么? 為什么要有GC 答&#xff1a;GC是垃圾收集的意思&#xff08;Gabage Collection&#xff09;,內存處理是編程人員容易出現問題的地方&#xff0c; 忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰&#xff0c;Java提供的GC功能可以自動 …

操作系統 --- [筆記]功能、組成

操作系統的作用 管理計算機硬件充當計算機用戶和計算機硬件的中介(操作系統控制硬件,協調各個用戶應用程序的硬件) 計算機系統的資源 CPU時間、內存空間、文件存儲空間、I/O設備等 操作系統的定義 如何定義一個操作系統: 計算機系統的根本目的是,執行用戶程序并且更容易解…

Java 試題二

Java 試題二 1、哪個選項和show函數重載 class Demo{ void show(int a,int b,float c){} } A.void show(int a,float c,int b){}//yes B,void show(int a,int b,float c){}//一模一樣。不可以出現在同一個類中。 C.int show(int a,float c,int b){return a;}//yes。 D.in…

Python之簡單驗證碼實現

def v_code(): ret for i in range(5): num random.randint(0,9) alf chr(random.randint(65,122)) s str(random.choice([num,alf])) ret s return retprint(v_code())轉載于:https://www.cnblogs.com/geeker-xjl/p/8809915.html

測繪軟件使用體會

進入石家莊鐵道大學已經兩年了&#xff0c;學習測繪工程專業也已經兩年了&#xff0c;大一的時候大多是對測繪不了解&#xff0c;到了大二的時候上半學期我就開始了解和使用一些測繪專業相關的軟件&#xff0c;在大二下半學期實習的時候更是深入的學習和使用測繪軟件&#xff0…

javascript --- event loop

栗子1 求下面函數的輸出 console.log(script start);setTimeout(() > {console.log(setTimeoout); }, 0);Promise.resolve().then(function(){console.log(promise1); }).then(function(){console.log(promise2); }) console.log(script end);說明: 在"promise2"…

sublime 設置自動換行

1.打開sublime,點擊preferences -> settings 2.將word_wrap的值由auto修改為true&#xff08;若沒有word_wrap&#xff0c;手動添加&#xff09; 轉載于:https://www.cnblogs.com/hitwgs/p/8821316.html

Java 試題三

Java 試題三 1、java類是否可以多繼承&#xff0c;怎么實現多繼承&#xff1f; 答&#xff1a;java沒有多繼承&#xff0c;但可以通過接口的形式來達到多繼承的目地。 2、我比較兩個String總是false&#xff0c;但是它們明明都是”abc” &#xff01; 答&#xff1a;比較Str…

Cent os常見操作命令

1.查看防火墻狀態&#xff1a;firewall-cmd –-state 2.關閉防火墻&#xff1a;systemctl stop firewalld.service 3.禁止防火墻開機啟動&#xff1a;systemctl disable firewalld.service 4.關閉selinux&#xff1a;vi /etc/selinux/config&#xff0c;然SELINUXdisabled 5.查…

koa --- 使用中間件多層級拋出錯誤

說明 能夠熟練的掌握錯誤的拋出,可以在一定程度上提高代碼的開發效率和可讀性 構造錯誤 本栗采用調用一個不存在的函數來拋出錯誤 const Koa require(koa); const app new Koa();// 響應時間輸出中間件 app.use(async (ctx, next) > {await next();// 獲取響應頭,印證…

電腦的真正價值

1.不是應用程序&#xff0c;而是開發程序 2.高級語言就像是人類的語言&#xff0c;低級語言就像是一個全心全意幫我的社交專家&#xff0c;他幫我說服電腦實現我的指令 3.高級語言就是字節碼&#xff0c;低級語言幫我轉換成機器碼 4.有時候&#xff0c;高級語言的一個眼神&…

Java 試題四

Java 試題四 1、abstract class 和interface 有什么區別? 【基礎】 答&#xff1a;聲明方法的存在而不去實現它的類被叫做抽象類&#xff08;abstract class&#xff09;&#xff0c;它用于要創建一個體現某些基本行為的類&#xff0c; 并為該類聲明方法&#xff0c;但不能…

PyInstaller用法

pyinstaller定義&#xff1a;PyInstaller是一個壓縮python文件成為可執行程序的一個軟件。 pyinstaller工作原理&#xff1a;① 它會掃描你所有的Python文檔&#xff0c;并分析所有代碼從而找出所有你的代碼運行所需的模塊。② PyInstaller會將所有這些模塊和你的code放在一個文…

koa --- 監聽路由,并使用模板引擎渲染顯示

使用路由 /Koa實戰/routes/index.js const Router require(koa-router); const router new Router();router.get(/, ctx > {ctx.body index; });module.exports router/Koa實戰/routes/users.js const Router require(koa-router); const router new Router({prefi…

公共平臺服務治理與鑒權

問題 解決問題 鑒權 注冊 管理 總結聊一聊最近了解的公司服務治理平臺&#xff0c;主要是思想&#xff0c;理念&#xff0c;而不是一種技術或框架。整個平臺設計&#xff0c;融入了OAUTH2認證&#xff0c;融入了微服務思想&#xff0c;幫助公司各系統在復雜的IT架構下&#xff…

Java 試題五

Java 試題五 1、運行時異常與一般異常有何異同 答&#xff1a;異常表示程序運行過程中可能出現的非正常狀態&#xff0c;運行時異常表示虛擬機的通常操作中可能遇到的異常&#xff0c;是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常&#xff0c;…

【初賽】概率與期望學習筆記

一、事件 1、單位事件、事件空間、隨機事件 在一次隨機試驗中可能發生的不能再細分的結果被稱為單位事件&#xff0c;用 $ E $ 表示。在隨機試驗中可能發生的所有單位事件的集合稱為事件空間&#xff0c;用 $ S $ 來表示。例如在一次擲骰子的隨機試驗中&#xff0c;如果用獲得的…

koa --- 擴展hbs方法

moment 是一款常用的處理時間的庫傳入 1999-03-01T16:00:00.000Z YYYY/MM/DD輸出 1999/03/02 const moment require(moment);const myDatePattern (date, pattern) >{return moment(date).format(pattern) } 給擴展hbs功能. 放在 utils/helper.js 下方便管理 const hb…

go系列 鎖的初識

Go基礎之鎖的初識 當我們的程序就一個線程的時候是不需要用到鎖的&#xff0c;但是通常我們實際的代碼不會是單個線程的&#xff0c;所有這個時候就需要用到鎖了&#xff0c;那么關于鎖的使用場景主要涉及到哪些呢&#xff1f; 當我們多個線程在讀相同的數據的時候則是需要加鎖…

Java 試題六

Java 試題六 1、Collection 和 Collections的區別 答&#xff1a;Collection是集合類的上級接口&#xff0c;繼承與他的接口主要有Set 和List。Collections是針對集合類的一個幫助類&#xff0c;他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。 2、Set里…