Проблема с функцией обобщенного класса

198
06 февраля 2018, 09:33

В книге Шилдта наткнулся на такой пример :

#include <iostream>
#include <cstdlib>
using namespace std;
const int SIZE = 10;
template <class AType>
class atype {
    AType a[SIZE];
public:
    atype() {
        register int i;
        for (i = 0; i<SIZE; i++) a[i] = i;
    }
    AType &operator[](int i);
};
template <class АТуре>
АТуре &atype<AType>::operator[](int i)
{
    if (i<0 || i> SIZE - 1) {
        cout << "\n Значение индекса ";
        cout << i << " за пределами границ массива.\n";
    }
    return a[i];
}
int main()
{
    return 0;
}

При запуске у себя наткнулся на ошибку в этой строке :

АТуре &atype<AType>::operator[](int i)

"AType" не является допустимым аргументом типа шаблон для параметра "AType". Как это исправить и почему "AType" не есть допустимым аргументом ?

Answer 1
#include <iostream>
#include <cstdlib>
using namespace std;
const int SIZE = 10;
template <class AType>
class atype {
    AType a[SIZE];
public:
    atype() {
        register int i;
        for (i = 0; i<SIZE; i++) a[i] = i;
    }
    AType &operator[](int i);
};
template <class AType> // тут AType похоже была кирилица (исправлено)
AType& atype<AType>::operator[](int i)
{
    if (i<0 || i> SIZE - 1) {
        cout << "\n Значение индекса ";
        cout << i << " за пределами границ массива.\n";
    }
    return a[i];
}
int main(int argv, char* argc[] )
{
    // смотри коды символов
    char a1[] = {'А', 'Т', 'у', 'р', 'е'}; // AType в объявлении
    char a2[] = {'A', 'T', 'y', 'p', 'e'}; // AType в определени
    return 0;
}
READ ALSO
Цикл не выдает правильный результат

Цикл не выдает правильный результат

Всех приветствую, вот код

245
Как скопилировать с помощью MinGW?

Как скопилировать с помощью MinGW?

Компилирую программу с помощью MinGW таким образом:

214
const = 0 после прототипа функции что означает?

const = 0 после прототипа функции что означает?

в библиотеке qwt, в файле qwt_series_datah, объявлен класс: QwtSeriesData

196
Makefile C++(Linux)

Makefile C++(Linux)

Добрый день возникла проблема с написание Makefile

300