1. 程式人生 > >類模板當作一個類模板的模板引數

類模板當作一個類模板的模板引數

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

//類模板當作一個類的引數
//設計STL時候用到
//面試,類模板當作引數

class MyClass
{
public:

private:

};
template<class T>
class MyClass2
{
public:
	T t;
	MyClass2(T t1):t(t1){

	}

private:

};


template<class T>
class ren      //一個通用的類的類模板
{

public:
	T name;
	ren(T t) :name(t)
	{

	}
};

template<class T, template<class T> class T1 >  //使用類模板當作模板引數的類
class people
{
public:
	T1<T> r;
	people(T1<T> t1) :r(t1)
	{
	

	}


};

void main()
{
	ren<string> r("nihao");
	MyClass2<ren<string>> m(r);  //僅僅使用template<class T>
	people<string, ren> p(r);         //使用template<class T> class T1 
	cout << m.t.name << endl;
	cout << p.r.name << endl;;
	
	std::cin.get();



}

相關推薦

模板當作一個模板模板引數

#include<iostream> #include<string> using namespace std; //類模板當作一個類的引數 //設計STL時候用到 //面試,類模板當作引數 class MyClass { public: pr

php一個引用另一個的方法的寫法

default.php: <?php namespace SiteInfo{ class Site{ var $url; var $title; function setUrl($par){ $thi

C++中一個訪問另外一個的成員變數或者成員函式

1.在一個類中定義另外一個類的成員為指標型別。並用this指標管理物件的記憶體,實現資料的傳遞。 #include <stdio.h> class A { public: A(); ~A(); void SetData(int year, int month, int day);

Qt如何將訊息在2個沒有關係的中從一個傳送到另一個

條件: ①2個類直接沒有任何關係; ②接收訊息的類必須有一個全域性變數; ③ QMetaObject::invokeMethod((QObject*)全域性變數類, "接收的方法", Qt::AutoConnection, Q_ARG(接收的引數型別, 接收的引數)); cla

【laravel】 複雜表單請求驗證,實現一個對應多個表單

一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵。本篇教程就不說這個了,需要了解的請戳這裡。第二種就是建立請求驗證類,下面就詳細說

【laravel】 複雜表單請求驗證,實現一個對應多個表單

一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵

C++中一個包含另一個

一個類裡面包含另外一個類,建構函式呼叫的先後關係。 1)A類的物件是B類的私有成員: #include <iostream>  using namespace std; class A { public:     int mInt;     A()     {

(C++)在外訪問一個中的私有成員變數

通過公共函式為私有成員賦值 #include <iostream> using namespace std; class Test { privat

JAVA學習筆記 物件的上轉型物件(子物件當作物件來使用)

  世界萬物無非就是吃喝玩樂繁衍生息,傳宗接代是重中之重,這樣長久以來就構成了我們地球上的生態系統,java也是這樣,只不過這裡面更加直接和純粹,就用學生和人類做一下例子,學生一定是人類對吧?(苗紅根正的當代優秀青年不相信怪力亂神)所以說人類一定就是學生的父類,學生就是人類的子類。大圓之中

QT 一個呼叫另一個中的方法 (樣式表例子)

① 新建一個類 ②新宣告的類cal 程式碼如下 cal.h #ifndef CAL_H #define CAL_H #include <QString> class Cal { public: Cal(); ~Cal(

一個呼叫另一個的static方法

編譯方法:gcc -c mgrdemo.cpp -o mgr.o gcc -g mgr.o viewdemo.cpp -I. -o view #include "MgrDemo.hpp" void CMgr::Initialize(int val) {  m_val =

C++ 一個呼叫另一個的成員變數/成員函式

有時候,兩個類之間並沒有繼承的關係,但是其中一個類需要引用另一個類中的成員變數或者成員函式。怎樣辦到呢? 假設已經新建了兩個類A、B。 class A { public: A(); ~A();

模板 "std::array" 的引數太少

在從VS2013專案遷移過來的時候,用的array<System::String ^> ^出現錯誤錯誤(活動)    E0442    類模板 "std::array" 的引數太少    這時候是因為C++ 11引入

LayaBox開發實戰之實現一個簡單的模板

tom image nbu tex 技術分享 info fig utils gre 1.首先UI設計:記得導出 2.然後查看layaUI.max.all.js中是否生成對應UI的JS代碼: var FeedBackUI=(function(_super){

c++---非型別的模板引數模板的特化、模板的分離編譯

一. 非型別的類模板函式 在類的模板引數列表中,不一定是都是型別,或者介面卡,也可以是一個數。 //一般都使用int,用作規定大小 template <class T,size_t MAXSIZE> 具體使用: template

C++11 圖說VS2013下的引用疊加規則和模板參數型推導規則

反匯編 cto 構造 這不 gif 怎麽辦 由於 pla 覆蓋 背景: 最近在學習C++STL,出於偶然,在C++Reference上看到了vector下的emplace_back函數,不想由此引發了一系列的“探索”,於是就有了現在這篇博文。 前言:

模板】第二斯特林數Stirling

pre ble 出發 ati val span 兩種 定義 技術 第二類Stirling數實際上是集合的一個拆分,表示將n個不同的元素拆分成m個集合的方案數,記為 或者 。 第二類Stirling數的推導和第一類Stirling數類似,可以從定義出發考慮第n+1個元

逆向第十九講——繼承和成員、運算符重載、模板逆向20171211

指針 emp 繼承方式 virtual n) stp 定義 調試 不同的 一、類繼承逆向 在C++中使用到繼承,主要是為了實現多態,那麽多態就必須會用到虛函數,即會產生虛表指針。 (1)父類和子類中有沒用到虛函數的四種情形 1)父類和子類中都沒有用到

抽象、內部抽象模板設計演算法

抽象類的定義與使用 定義: 抽象類只是在普通類的基礎上擴充了一些抽象方法而已。 抽象方法: 只宣告未定義的方法(沒有方法體) 所有抽象方法要求使用abstract來定義,並且抽象方法所在類必須用abstract來定義,表示抽象類。 抽象類的使用原則:

模板內宣告外定義的函式,在外定義時沒加模板時的報錯

錯誤 1 error LNK2019: 無法解析的外部符號 "public: int __thiscall SqList<class StuTab>::getLength(void)" ([email protected][email protected]@@@@QAEHXZ)