Ищу с помощью дружественного метода минимальный и максимальный элементы массива.
Но компилятор ругается.
#include <iostream>
#include <windows.h>
using namespace std;
class work;
class vect
{
int n;
int* p;
public:
vect(int size = 0)
{
n = size;
p = new int[size];
}
~vect()
{
delete[] p;
}
void input_vect();
void output_vect();
friend void work::work_vect(vect& ob);
};
void vect::input_vect()
{
cout << "Ввод вектора:\n";
for (int i = 0; i < n; i++) {
cout << "elem=";
cin >> p[i];
}
}
void vect::output_vect()
{
cout << "Вывод вектора:\n";
for (int i = 0; i < n; i++) {
cout << p[i] << " ";
}
cout << endl;
}
class work
{
public:
void work_vect(vect& ob);
};
void work::work_vect(vect& ob)
{
int min = 0;
int max = 0;
for (int i = 1; i < ob.n; i++) {
if (ob.p[i] < ob.p[min]) {
min = i;
}
if (ob.p[i] > ob.p[max]) {
max = i;
}
}
cout << "минимальный элемент под номером: " << min + 1 << endl;
cout << "максимальный элемент под номером: " << max + 1 << endl;
}
int main()
{
SetConsoleOutputCP(1251);
int a;
cin >> a;
vect A(a);
work B();
A.input_vect();
A.output_vect();
B.work_vect(A);
system("PAUSE");
return 0;
}
использование неопределенного типа "work"
невозможно обратиться к private член, объявленному в классе "vect"
невозможно обратиться к private член, объявленному в классе "vect"