這是我的頭文件:我無法理解這些代碼是如何工作的
#pragma once
template <typename T>
T Sub(T a, T b)
{
return a - b;
}
這是我的樣本參考C++源文件。
#include "NonrecursiveInorderTree.h"
#include <iostream>
using namespace std;
template<typename T1, typename T2>
void ShowData(T1 a, T2 b)
{
cout << a << "";
cout << b << endl;
}
int main(void)
{
ShowData(1, 2);
ShowData(3, 2.5);
return 0;
}
我正在學習模板,我無法理解我的代碼如何處理頭文件。
我的意思是,即使頭文件有一個減法函數,爲什麼這個結果不是像-1或0.5那樣的相減?相反,我得到12和32.5? 如何將sub(a, b)
寫入cout
?
讓'ShowData'中的語句爲'cout << Sub(a,b)<< endl'。 – MNS
但是你不在任何地方使用'Sub'?創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)時,請確保它是*完整*。另外,'NonrecursiveInorderTree.h'頭文件是什麼?你有'Sub'模板嗎? –
它打印12和32.5,因爲它不打印空間這一行'cout << a <<「」'。它打印1和2,3和2.5兩個數字之間沒有空格。 – Laurence