Помогите с описанием функции СИ++
Функция должна возвращать массив объектов класса по задумке. Подскажите, как ее описать, чтобы компилятор не ругался, желательно помогать простым языком, без умностей.
*.h файл:
Sotrudnik sotrudnikScan(Dolzhnost scan1, Dolzhnost scan2, Dolzhnost scan3,
Dolzhnost scan4, Dolzhnost scan5, Dolzhnost scan6, Dolzhnost scan7,
Dolzhnost scan8, Dolzhnost scan9, Sotrudnik scan, Sotrudnik a,
Sotrudnik a1, Sotrudnik a2, Sotrudnik a22, Sotrudnik a222,
Sotrudnik a3, Sotrudnik a33, Sotrudnik a333, Sotrudnik a4,
Sotrudnik a44, Sotrudnik a444, Sotrudnik a5, Sotrudnik a55,
Sotrudnik a555, Sotrudnik a6, Sotrudnik a66, Sotrudnik a666,
Sotrudnik a7, Sotrudnik a77, Sotrudnik a777, Sotrudnik a8,
Sotrudnik a88, Sotrudnik a888, Sotrudnik a9, Sotrudnik a99,
Sotrudnik a999, Sotrudnik mass[26]);
*.cpp файл:
Sotrudnik Sotrudnik::sotrudnikScan(Dolzhnost scan1, Dolzhnost scan2, Dolzhnost scan3,
Dolzhnost scan4, Dolzhnost scan5, Dolzhnost scan6, Dolzhnost scan7,
Dolzhnost scan8, Dolzhnost scan9, Sotrudnik scan, Sotrudnik a,
Sotrudnik a1, Sotrudnik a2, Sotrudnik a22, Sotrudnik a222,
Sotrudnik a3, Sotrudnik a33, Sotrudnik a333, Sotrudnik a4,
Sotrudnik a44, Sotrudnik a444, Sotrudnik a5, Sotrudnik a55,
Sotrudnik a555, Sotrudnik a6, Sotrudnik a66, Sotrudnik a666,
Sotrudnik a7, Sotrudnik a77, Sotrudnik a777, Sotrudnik a8,
Sotrudnik a88, Sotrudnik a888, Sotrudnik a9, Sotrudnik a99,
Sotrudnik a999, Sotrudnik mass[26]) {
....
return mass;
}
и эклипс пишет ошибку на этой строчке:
Conversion from 'std::Sotrudnik*' to non-scalar type 'std::Sotrudnik' requested
Понятно, что тут что-то с возвращаемым значением функции описано что-то не так.
я понял он ругается что функция должна возвращать переменную типа Сотрудник, вообщем объект, а возвращает массив объектов (non-scalar) не скаляр - много чисел

1. Я бы за такие функции убивал. На месте. Жестоко. Хотя бы за имена параметров. Да и вообще.
2. Sotrudnik::sotrudnikScan должен возвращать нечто типа Sotrudnik, а вместо этого пытается вернуть указатель на массив. Определись, что должно возвращаться.
3. "Желательно простым языком, без умностей? " Не пиши программ - там слишком много умностей.
А нафига вообще в переменных "Dolzhnost scan5" и "Sotrudnik a444"??
задай массивы и кидай в функцию указатели на них
Можно, например, вот так
#include <iostream>
#include <vector>
using namespace std;
class A
{
int x;
public:
A():x(0) {}
A(int ax):x(ax) {}
void print() { cout << x << endl; }
};
vector < A > f()
{
int i;
vector < A > v(5);
for(i=0;i-5;v[i++]=i+1);
return v;
}
int main()
{
int i;
vector < A > z(f());
for(i=0;i-z.size();z[i++].print());
return 0;
}
но лучше продумать алгоритм, чтобы не передавать массивы!