request for member ' ', which is of non-class type ' ' при вызове функции в main'е
Сперва изложу суть задачи: Создаю класс матрицы, в которой каждым элементом является структура комплексных чисел. Размер у матрицы фиксированный, для этого ввожу постоянные переменные.
Добавляю функции для ввода и вывода матрицы, описываю, вызываю в main'e. И здесь, собственно, появляется проблема, потому что при вызове обеих функций появляется ошибка request for member ' ', which is of non-class type ' '
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define nmax 4
#define mmax 2 // задаю размеры матрицы
struct comp
{
double re, im;
}; // непосредственно к проблеме не относится -- создал структуру комплексных чисел
class matr
{
comp base[nmax][mmax];
public:
void input();
void print();
};
// функция для ввода матрицы, с вызовом которой потом будут проблемы
void matr::input()
{
cout << "Insert matrix of " << 2 << " and " << 4<< " respectively: " << endl;
int j, i;
for (i = 0; i < nmax; i++)
for (j = 0; j < mmax; j++)
{
cout << "Insert real and imaginary part: " << endl;
cin >> base[i][j].re;
cin > >base[i][j].im;
}
}
// функция для вывода матрицы, при вызове выпадет та же ошибка
void matr::print()
{
cout << "Outputting matrix: " << endl;
for (int i = 0; i < nmax; i++)
for (int j = 0; j < mmax; j++)
{
cout << base[i][j].re << " + " << base[i][j].im << "i ";
cout << endl;
}
}
int main(void)
{
matr a[nmax][mmax];
a.input(); //error: request for member ‘input’ in ‘a’, which is of non-class type ‘matr [4][2]’
a.print(); //error: request for member ‘print’ in ‘a’, which is of non-class type ‘matr [4][2]’
return 0;
}
Просмотрел большое количество статей с такой же ошибкой, в нескольких из них предлагали убрать () после вызова функций -- не помогло, абсолютно ничего не изменилось.
Что я делаю не так?