我想創建一個類調用Array並將對象arr和arr1傳遞給一個名爲「fun」的函數。但我的編譯器告訴我,這 「&」 令牌」。我錯過了什麼?C++將模板類傳遞給void函數
.h文件中
#ifndef ARRAY_H_INCLUDED
#define ARRAY_H_INCLUDED
template <typename T, int SIZE>
class Array
{
T values[SIZE];
};
template <typename T, int SIZE>
void fun (const Array<T, SIZE>& a,const Array<T, SIZE>& a1,int index)
{
}
#endif // ARRAY_H_INCLUDED
template <typename T, int SIZE>
void fun (const StaticArray<T, SIZE>& a,const StaticArray<T, SIZE>& a1,int index)
{
}
.CPP
#include <iostream>
using namespace std;
#include "Array.h"
template <typename T, int SIZE>
void fun (const Array<T, SIZE>&,const Array<T, SIZE>&,int);
int main()
{
int i=-1;
Array<double, 5> arr;
Array<bool, 5> arr1;
fun(Array<double, 5>& arr,Array<double, 5>& arr1,i); //error expected primary-expression before '&' token
}
你可以將arr和arr1傳遞給函數嗎?不需要重新聲明他們是陣列。 – NickLamp