1 Востаннє редагувалося koala (05.10.2023 08:28:01)

Тема: видає помилку та пише що plus is ambigious, як це можна виправити?

#include <iostream>
using namespace std;

class Drib {
public:
    int chysel;
    int zaym;
    Drib() { chysel = 0, zaym = 0; }
    Drib(int chysel_, int zaym_) : chysel(chysel_), zaym(zaym_) {};
    Drib plus(Drib p1, Drib  p2);

    void print() {
        cout << chysel << "/" << zaym;
    }
};
Drib plus(Drib p1, Drib  p2) {
    if (p1.zaym == p2.zaym) {
        return Drib(p1.chysel + p2.chysel, p1.zaym);
    }
    else if (p1.zaym!=p2.zaym) {
        int zaym_s = p1.zaym * p2.zaym;
        int chysel_s = (zaym_s / p1.zaym * p1.chysel) + (zaym_s / p2.zaym * p2.chysel);
        return Drib(chysel_s,zaym_s);
    }
}
int main() {
    Drib m1(2, 3);
    Drib m2(5, 3);
    Drib m3 = plus(m1, m2); // тут видає помилку та пише що plus is ambigious, як це можна виправити?
    m3.print();
}

2 Востаннє редагувалося koala (05.10.2023 08:35:30)

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

Від модератора: переніс до відповідного розділу і дав нормальний заголовок, невже це так складно?

Якщо ви прочитаєте далі, то побачите

note: candidates are: ‘template<class _Tp> struct std::plus’
     struct plus;
            ^~~~
prog.cpp:16:6: note:                 ‘Drib plus(Drib, Drib)’

Друга функція - ваша. Перша структура - з std. Чому вона опинилася у загальному просторі імен? Бо ви зробили

using namespace std;

От саме тому й не треба цього робити.

Наступного разу, будь ласка, описуйте, що саме ви робите і читайте та наводьте текст повідомлення про помилку повністю. А також додавайте теги code (кнопка <>).

І вам не треба вдруге порівнювати p1.zaym і p2.zaym, якщо перше порівняння дало хибу, то гілка else точно спрацює без додаткової перевірки.

Подякували: leofun011

3

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

А, і, до речі, ви проголосили дві функції plus: одну - метод в Drib, другу - незалежну.

Подякували: leofun011

4

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

чисельник і займенник ?

Бери зразу нумератор і деномінатор.

5

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

Це якась сільська школа, де не вивчають оператори і плутають сі з +?

6

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

ur_naz написав:

Це якась сільська школа, де не вивчають оператори і плутають сі з +?

Судячи з рівня її знань, її вчителі пояснюють не набагато краще за вас. Мабуть, разом вчилися.

Подякували: leofun011

7

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

Я ще не починав...
І не треба мене тролити

8

Re: видає помилку та пише що plus is ambigious, як це можна виправити?

ur_naz написав:

Я ще не починав...

Що саме не починали, вчитися?

ur_naz написав:

І не треба мене тролити

Гадаєте, ви маєте монополію на тролінг?