Помогите с лабораторной работой. Дружественные функции

Помогите, пожалуйста, с лабораторной работой. Задание:
1. Создать функцию- член класса OUT_AMP, которая является дружественной для класса PRE_AMP и считает общий коэффициент усиления(произведение всех коэффициентов усиления) устройства.
2. Создать дружественную функцию для классов OUT_AMP и PRE_AMP, которая не является членом этих классов и считает общее число транзисторов усилительного устройства. Параметр «число транзисторов» ввести в классы.

#include <iostream>
#define p 3
using namespace std;

class PRE_AMP;
class OUT_AMP{
    float K;
    float I;
    int T;
    friend int tranz(PRE_AMP,OUT_AMP);
    friend int pos(OUT_AMP,PRE_AMP);
public:
    float isum(PRE_AMP *) const;
    OUT_AMP(float a,float b) { K=a; I=b; }
    OUT_AMP(int c) { T=c; }
};

class PRE_AMP{
    float K;
    float I;
    int T;
    static int count;
    friend int pos(OUT_AMP,PRE_AMP);
    friend float OUT_AMP::isum(PRE_AMP *) const;
    friend int tranz(PRE_AMP,OUT_AMP);
public:
    void setKI(float,float);
    PRE_AMP(float a,float b) { K=a; I=b; }
    PRE_AMP(int c) { T=c; }
};

int PRE_AMP::count=0;
PRE_AMP::PRE_AMP() { ++count; }
void PRE_AMP::setKI(float a,float b) { K=a; I=b; }

float OUT_AMP::isum(PRE_AMP *obj) const
{
    float sum=0.0;
    for(int i=0;i<PRE_AMP::count;i++)
        sum+=obj[i].I;
    return sum+I;
}

int tranz(PRE_AMP t1, OUT_AMP t2){
    return t1.T+t2.T;
}

int pos(OUT_AMP Ob1, PRE_AMP Ob2){
    return Ob1.K * Ob2.K;
}


int main()
{
    setlocale(LC_ALL, "");
    cout << "Коло-во предусилителей: " << p << "\n";
    int *mult = new int[p];
    for (int i=0;i<p;i++)
        {
            mult[i] = i;
            cout << "Значение " << i << " элемента " << mult[i] << endl;
        }
    delete [] mult;
    OUT_AMP oa(3,10);
    PRE_AMP pa[p];
    float a,b;
    for(int i=0;i<p;i++)
        {
           cout<<"Введите Ку и Iп "<<i+1<<"-го предусилителя"<<endl;
           cin>>a>>b;
           pa[i].setKI(a,b);
        }
    cout<<"Суммарный ток потребления: "<<oa.isum(pa)<<endl;
    PRE_AMP t1(10);
    OUT_AMP t2(4);
    cout<<"Суммарное кол-во транзисторов: "<<tranz(t1,t2);
    PRE_AMP Ob1.a[i];
    OUT_AMP Ob2.a[i];
    cout<<"Коефіціент посилення: "<<pos(Ob1.a[i],Ob2.a[i]);
}

не ну ты внатуре лох! маму ебал

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.