Я просто хотел знать, почему я должен делать переменные, которые я передаю в шаблоны функций, должен быть const?Почему ключевое слово const является обязательным для определения параметров шаблона?
пример: -
#include <iostream>
using std::cout;
using std::endl;
template< typename T>
void printArray(T *array, int count)
{
for (int i = 0; i < count; i++)
cout << array[ i ] << " ";
cout << endl;
}
int main()
{
const int ACOUNT = 5; // size of array a
const int BCOUNT = 7; // size of array b
const int CCOUNT = 6; // size of array c
int a[ ACOUNT ] = { 1, 2, 3, 4, 5 };
double b[ BCOUNT ] = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 };
char c[ CCOUNT ] = "HELLO"; // 6th position for null
cout << "Array a contains:" << endl;
// call integer function-template specialization
printArray(a, ACOUNT);
cout << "Array b contains:" << endl;
// call double function-template specialization
printArray(b, BCOUNT);
cout << "Array c contains:" << endl;
// call character function-template specialization
printArray(c, CCOUNT);
return 0;
}
Здесь в главной функции: - я объявить переменные
const int ACOUNT = 5; // size of array a
const int BCOUNT = 7; // size of array b
const int CCOUNT = 6; // size of array c
в const
. Если я не объявляю их как const, я бы получил ошибку «Uninitialized array».
Может кто-нибудь, пожалуйста, сообщите мне, если это правило, что параметры, отправленные в функциональные шаблоны, должны иметь тип const?